Commit Graph

53 Commits

Author SHA1 Message Date
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
2021-05-02 11:31:19 +10:00
Xing Xing
bc80b2f853 fixed signal method 2015-01-16 17:41:19 +08:00
Xing Xing
939189448e golib/signal upgrade 2015-01-15 10:28:21 +08:00
Xing Xing
ad9b3cb988 go fmt 2015-01-06 11:45:18 +08:00
Xing Xing
9d7a29fe26 Merge branch 'master' into 0.2-dev 2014-03-07 17:33:16 +08:00
Damian Gryski
7229235a4f Use %v instead of %V, which is not a valid Printf verb 2014-03-07 10:21:45 +01:00
Xing Xing
09542d7176 update examples 2014-03-03 15:23:46 +08:00
Xing Xing
45a9d7c3e5 fixed #31 2014-03-03 11:40:42 +08:00
Xing Xing
3a5d89c67a fixed typo, issue #27 2014-01-15 10:09:10 +08:00
Xing Xing
87631cc2e5 go fmt & better examples 2014-01-09 17:58:02 +08:00
Xing Xing
bf25cc1728 a better documents for the client package 2013-12-26 15:28:42 +08:00
Xing Xing
18791d0490 a better documents 2013-12-26 12:06:47 +08:00
Xing Xing
02e6bfebcb prepared for documentation 2013-12-25 17:01:42 +08:00
Xing Xing
3aa95042e6 merge, client need to refactor 2013-12-24 22:04:10 +08:00
Xing Xing
bcff8f7e0d go fmt 2013-12-24 14:39:04 +08:00
Xing Xing
2da5f29cd1 refactoring complated 2013-12-24 14:35:33 +08:00
Xing Xing
e9c29799fb refactoring worker side data package 2013-12-20 15:24:22 +08:00
Xing Xing
c8f2f5085c race is bad, how should we do? 2013-09-22 22:58:22 +08:00
mikespook
5c6d94f385 fixed for travis-ci 2013-06-09 12:35:35 +08:00
mikespook
8e009be940 #14 fixed 2013-04-24 16:58:06 +08:00
mikespook
568c70b083 #12 fixed 2013-04-23 16:58:06 +08:00
mikespook
7a8a5d4a6a for issue #10; an IdGenerator interface, use bson.ObjectId as default 2013-02-28 13:28:48 +08:00
mikespook
b72825d48a testing file removed 2012-12-28 17:15:23 +08:00
mikespook
6834e94fc5 take a break for reading data 2012-12-28 17:14:47 +08:00
mikespook
d6c6bfe9f0 moved to github 2012-12-21 11:11:37 +08:00
mikespook
919dfeaff0 A new example added 2012-11-22 17:15:20 +08:00
mikespook
05590bfb8c Info funcs added
--HG--
branch : dev
2012-09-25 15:16:17 +08:00
mikespook
fe5a31a51e fixed resources leaking
--HG--
branch : dev
2012-09-02 22:42:54 +08:00
mikespook
adf3729627 update examples
--HG--
branch : dev
2012-08-30 17:56:10 +08:00
mikespook
b7ee1d68f5 fixed a exec issue, timeout exec need to fix
--HG--
branch : dev
2012-08-30 16:12:15 +08:00
mikespook
83f5f6fa70 fixed the example 2012-06-01 14:28:10 +08:00
mikespook
842edf79ba fixed a infinite loop 2012-05-28 10:34:16 +08:00
mikespook
d6a9025a56 The worker can be working now.
--HG--
branch : 0.1
2012-05-24 16:49:35 +08:00
mikespook
2960cb9953 refacotring worker's code
--HG--
branch : 0.1
rename : worker/jobagent.go => worker/agent.go
rename : worker/workerjob.go => worker/job.go
2012-05-23 17:45:52 +08:00
mikespook
563af037cb fixed client:Job.Encode
--HG--
branch : 0.1
2012-05-23 15:22:29 +08:00
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
2012-05-22 20:05:39 +08:00
mikespook
e4172dec11 replease ErrQueue to ErrFunc, add a limitation to executing job 2012-05-10 21:25:33 +08:00
mikespook
f7896651a4 upgraded to the newest golib 2012-04-09 09:26:06 +08:00
mikespook
b8ec3fd242 Modified the api, added the interrupt for the example. 2012-03-27 22:48:03 +08:00
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
2012-03-26 13:32:59 +08:00
mikespook
85a02820fc Upgrade to weekly.2011-12-14 2011-12-28 17:59:44 +08:00
mikespook
e34d969e47 Fix bugs in example codes. 2011-10-09 17:53:55 +08:00
mikespook
e50c4533af gofix for go's weekly version: weekly.2011-09-01 2011-09-05 12:41:53 +08:00
mikespook
28ac570cbc fixed issue #1, user data could contain '\x00' NULL byte now 2011-05-28 12:27:27 +08:00
mikespook
7a4bbcdc55 Format codes by gofmt. 2011-05-24 13:20:22 +08:00
mikespook
82f0ab2cd5 Could not trust os.EOF as the end of msg's mark. 2011-05-24 12:21:49 +08:00
mikespook
2d62a1d5d1 Added python script for testing 2011-05-22 23:02:03 +08:00
mikespook
b4a6f133e1 The first workable version, both worker and client. 2011-05-22 22:16:30 +08:00
mikespook
f6d2a16685 Great. We got it. The client do the job correctly. 2011-05-21 21:11:29 +08:00
mikespook
d8882938f7 no eof got invalid package, would modify the depack method 2011-05-21 12:32:44 +08:00