Paul Cameron
a8f0a04c3d
Fix two race conditions in client.Do
* Common race condition is fixed by identifying that Client.respHandler
can be completely removed since all respHandler operations (get, put
and invocation) can be moved into the Client.processLoop goroutine,
meaning that zero locking is required. This race condition resulted
in a deadlock that was resolved by the response timeout at the
end of client.Do, returning ErrLostConn
* Rare race condition is fixed by changing responseHandlerMap.get
to .getAndRemove. This race condition resulted in the innerHandler
for a new dtJobCreated assigned in client.Do overriding a stale older
dtJobCreated request, and the newer innerHandler being removed by an
older dtJobCreated in client.processLoop > client.handleInner. When
the newer dtJobCreated response was received, the handler for it had
already been deleted. This was resolved by the response timeout at the
end of client.Do, returning ErrLostConn
преди 3 години
Xing Xing
bc80b2f853
fixed signal method
преди 9 години
Xing Xing
939189448e
golib/signal upgrade
преди 9 години
Xing Xing
ad9b3cb988
go fmt
преди 9 години
Damian Gryski
7229235a4f
Use %v instead of %V, which is not a valid Printf verb
преди 10 години
Xing Xing
09542d7176
update examples
преди 10 години
Xing Xing
45a9d7c3e5
fixed #31
преди 10 години
Xing Xing
3a5d89c67a
fixed typo, issue #27
преди 10 години
Xing Xing
87631cc2e5
go fmt & better examples
преди 10 години
Xing Xing
bf25cc1728
a better documents for the client package
преди 10 години
Xing Xing
18791d0490
a better documents
преди 10 години
Xing Xing
02e6bfebcb
prepared for documentation
преди 10 години
Xing Xing
bcff8f7e0d
go fmt
преди 10 години
Xing Xing
2da5f29cd1
refactoring complated
преди 10 години
Xing Xing
e9c29799fb
refactoring worker side data package
преди 10 години
Xing Xing
c8f2f5085c
race is bad, how should we do?
преди 10 години
mikespook
5c6d94f385
fixed for travis-ci
преди 11 години
mikespook
8e009be940
#14 fixed
преди 11 години
mikespook
568c70b083
#12 fixed
преди 11 години
mikespook
7a8a5d4a6a
for issue #10 ; an IdGenerator interface, use bson.ObjectId as default
преди 11 години
mikespook
b72825d48a
testing file removed
преди 11 години
mikespook
6834e94fc5
take a break for reading data
преди 11 години
mikespook
d6c6bfe9f0
moved to github
преди 11 години
mikespook
919dfeaff0
A new example added
преди 11 години
mikespook
05590bfb8c
Info funcs added
--HG--
branch : dev
преди 11 години
mikespook
fe5a31a51e
fixed resources leaking
--HG--
branch : dev
преди 11 години
mikespook
adf3729627
update examples
--HG--
branch : dev
преди 11 години
mikespook
b7ee1d68f5
fixed a exec issue, timeout exec need to fix
--HG--
branch : dev
преди 11 години
mikespook
83f5f6fa70
fixed the example
преди 12 години
mikespook
842edf79ba
fixed a infinite loop
преди 12 години
mikespook
d6a9025a56
The worker can be working now.
--HG--
branch : 0.1
преди 12 години
mikespook
2960cb9953
refacotring worker's code
--HG--
branch : 0.1
rename : worker/jobagent.go => worker/agent.go
rename : worker/workerjob.go => worker/job.go
преди 12 години
mikespook
563af037cb
fixed client:Job.Encode
--HG--
branch : 0.1
преди 12 години
mikespook
7614c2678a
make a new branch, refactoring codes
--HG--
branch : 0.1
rename : gearman/client/client.go => client/client.go
rename : gearman/client/client_test.go => client/client_test.go
rename : gearman/client/clientjob.go => client/job.go
rename : gearman/gearman.go => common/gearman.go
rename : gearman/worker/jobagent.go => worker/jobagent.go
rename : gearman/worker/worker.go => worker/worker.go
rename : gearman/worker/worker_test.go => worker/worker_test.go
rename : gearman/worker/workerjob.go => worker/workerjob.go
преди 12 години
mikespook
e4172dec11
replease ErrQueue to ErrFunc, add a limitation to executing job
преди 12 години
mikespook
f7896651a4
upgraded to the newest golib
преди 12 години
mikespook
b8ec3fd242
Modified the api, added the interrupt for the example.
преди 12 години
mikespook
e0c1537e8e
code refactoring, upgrade to GO1 RC2
--HG--
rename : README => README.md
rename : src/gearman/client.go => gearman/client/client.go
rename : src/gearman/client_test.go => gearman/client/client_test.go
rename : src/gearman/clientjob.go => gearman/client/clientjob.go
rename : src/gearman/gearman.go => gearman/gearman.go
rename : src/gearman/jobagent.go => gearman/worker/jobagent.go
rename : src/gearman/worker.go => gearman/worker/worker.go
rename : src/gearman/worker_test.go => gearman/worker/worker_test.go
rename : src/gearman/workerjob.go => gearman/worker/workerjob.go
преди 12 години
mikespook
85a02820fc
Upgrade to weekly.2011-12-14
преди 12 години
mikespook
e34d969e47
Fix bugs in example codes.
преди 12 години
mikespook
e50c4533af
gofix for go's weekly version: weekly.2011-09-01
преди 12 години
mikespook
28ac570cbc
fixed issue #1 , user data could contain '\x00' NULL byte now
преди 13 години
mikespook
7a4bbcdc55
Format codes by gofmt.
преди 13 години
mikespook
82f0ab2cd5
Could not trust os.EOF as the end of msg's mark.
преди 13 години
mikespook
2d62a1d5d1
Added python script for testing
преди 13 години
mikespook
b4a6f133e1
The first workable version, both worker and client.
преди 13 години
mikespook
f6d2a16685
Great. We got it. The client do the job correctly.
преди 13 години
mikespook
d8882938f7
no eof got invalid package, would modify the depack method
преди 13 години
mikespook
016dd669aa
The client can work now...with some known bugs. :(
преди 13 години
mikespook
2f4eb65c85
Added the client
--HG--
rename : src/pkg/gearman/gearman_test.go => src/pkg/gearman/worker_test.go
преди 13 години