revent 0.3 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/revent/as_r.rb +6 -7
- data/lib/revent/r_r.rb +5 -3
- data/lib/revent/synchronize.rb +9 -0
- metadata +3 -2
data/lib/revent/as_r.rb
CHANGED
@@ -2,6 +2,8 @@ require 'rubygems'
|
|
2
2
|
require 'eventmachine'
|
3
3
|
require 'zlib'
|
4
4
|
require 'logger'
|
5
|
+
|
6
|
+
require "#{File.dirname(__FILE__)}/synchronize"
|
5
7
|
require "#{File.dirname(__FILE__)}/amf3/amf3"
|
6
8
|
|
7
9
|
# AS clients are not reliable. For security, we close the connection immediately
|
@@ -75,12 +77,8 @@ module Revent
|
|
75
77
|
|
76
78
|
def unbind
|
77
79
|
@connected = false
|
78
|
-
|
79
|
-
|
80
|
-
else
|
81
|
-
@me.on_close(self)
|
82
|
-
@cons.delete(self)
|
83
|
-
end
|
80
|
+
@cons.synchronize { @cons.delete(self) }
|
81
|
+
@me.on_close(self)
|
84
82
|
end
|
85
83
|
|
86
84
|
# ----------------------------------------------------------------------------
|
@@ -168,8 +166,9 @@ EOF
|
|
168
166
|
end
|
169
167
|
|
170
168
|
@revent_cons = []
|
169
|
+
@revent_cons_mutex = Mutex.new
|
171
170
|
EventMachine::start_server(host, port, ASRCon) do |con|
|
172
|
-
@revent_cons << con
|
171
|
+
@revent_cons.synchronize { @revent_cons << con }
|
173
172
|
con.me = self
|
174
173
|
con.cons = @revent_cons
|
175
174
|
on_connect(con)
|
data/lib/revent/r_r.rb
CHANGED
@@ -2,6 +2,8 @@ require 'rubygems'
|
|
2
2
|
require 'eventmachine'
|
3
3
|
require 'stringio'
|
4
4
|
|
5
|
+
require "#{File.dirname(__FILE__)}/synchronize"
|
6
|
+
|
5
7
|
module Revent
|
6
8
|
# Included by both Revent::RRServer and Revent::RRClient.
|
7
9
|
module RRCon
|
@@ -55,7 +57,7 @@ module Revent
|
|
55
57
|
@me.on_close
|
56
58
|
else
|
57
59
|
@me.on_close(self)
|
58
|
-
@cons.delete(self)
|
60
|
+
@cons.synchronize { @cons.delete(self) }
|
59
61
|
end
|
60
62
|
end
|
61
63
|
|
@@ -87,7 +89,7 @@ module Revent
|
|
87
89
|
def start_server(host, port)
|
88
90
|
@revent_cons = []
|
89
91
|
EventMachine::start_server(host, port, RRCon) do |con|
|
90
|
-
@revent_cons << con
|
92
|
+
@revent_cons.synchronize { @revent_cons << con }
|
91
93
|
con.me = self
|
92
94
|
con.cons = @revent_cons
|
93
95
|
on_connect(con)
|
@@ -173,4 +175,4 @@ module Revent
|
|
173
175
|
def on_error(cmd, value)
|
174
176
|
end
|
175
177
|
end
|
176
|
-
end
|
178
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: revent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ngoc DAO Thanh
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-02-
|
12
|
+
date: 2008-02-20 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -36,6 +36,7 @@ files:
|
|
36
36
|
- lib/revent/r_r.rb
|
37
37
|
- lib/revent/as_r.rb
|
38
38
|
- lib/revent/Client.as
|
39
|
+
- lib/revent/synchronize.rb
|
39
40
|
- lib/revent/amf3
|
40
41
|
- lib/revent/amf3/app
|
41
42
|
- lib/revent/amf3/app/fault_object.rb
|