gavrila florin
fa71d7a37a
add support for own ids
2022-05-04 00:04:38 +03:00
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
CodeLingo Bot
133dd3716f
Fix function comments based on best practices from Effective Go
...
Signed-off-by: CodeLingo Bot <bot@codelingo.io>
2019-02-28 02:11:17 +00:00
Md. Ashiquzzaman
d0e6ec4878
Fix Odd use of time.Duration ( #29 )
...
Ref - https://github.com/appscode/g2/issues/28
2018-11-21 17:16:29 +01:00
Sadlil Rhythom
f2f0349d2d
Remove lastcall.
2018-11-21 17:00:42 +01:00
Christoffer Fjellström
0ca6dc2c6f
Remove duplicate locking
...
Fixes duplicated code after merge
2017-09-30 09:30:29 +02:00
No-ops
7b6215604e
Merge remote-tracking branch 'upstream/master'
2017-09-29 10:51:16 +02:00
Christoffer Fjellström
2dbf199260
Add lock on job handler assignment
...
Fixes race condition on jobs being done before handler is set.
2017-09-27 11:57:57 +02:00
Christoffer Fjellström
27942f55cd
Add sync lock on do() to avoid race conditions when creating jobs
2017-02-03 10:06:27 +01:00
Christoffer Fjellström
d6791e2e42
Add sync lock to create job functions
...
Add sync lock to make create job calls thread safe.
2017-01-16 16:44:48 +01:00
JessonChan
dd82e211a3
concurrent map bug fixed
2016-05-06 18:00:58 +08:00
Xing Xing
c6c6c9cac2
don't use sigillum
2015-07-10 20:30:35 +08:00
Endre Hirling
c615e74af8
Replace mutex in client.do() with a channel to avoid deadlock and introduce command timeout
2015-07-06 21:40:49 +02:00
Graham Barr
7bcc4de76f
Do not ignore write errors
2014-08-20 11:27:32 -05:00
Graham Barr
d82da8fd71
Avoid read channel corruption when response size > bufferSize
...
When receiving a response, what was happening
1. Read bufferSize and it gets assigned to leftdata
2. Read another bufferSize
3. 2 buffers get appended, but leftdata still points to first buffer
4. Process data buffer which contains only complete responses
5. Back to ReadLoop, but leftdata still points to first incomplete buffer
causing corrupt data to be processed
Solution is to make leftdata nil once we have merged it with the second buffer
2014-08-18 12:35:31 -05:00
Graham Barr
3e556edb2d
When a job completes, remove its handler
2014-07-24 14:20:56 -05:00
Xing Xing
5334b50533
fixed #34
2014-03-11 10:03:00 +08:00
Xing Xing
f880354a61
type assertion with *net.OpError
2014-03-03 14:45:35 +08:00
Xing Xing
45a9d7c3e5
fixed #31
2014-03-03 11:40:42 +08:00
Xing Xing
87631cc2e5
go fmt & better examples
2014-01-09 17:58:02 +08:00
Xing Xing
76196899f8
fxied issue #20
2014-01-09 16:16:34 +08:00
Xing Xing
bf25cc1728
a better documents for the client package
2013-12-26 15:28:42 +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
c8f2f5085c
race is bad, how should we do?
2013-09-22 22:58:22 +08:00
Xing Xing
e5179e3b5b
started refactoring worker
2013-08-30 18:01:10 +08:00
Xing Xing
124e686699
go fmt
2013-08-30 12:36:57 +08:00
Xing Xing
9daac76f67
removed outside dependency
2013-08-30 11:41:18 +08:00
Xing Xing
764dcf5f99
merge from paulmach
2013-08-30 11:27:41 +08:00
Xing Xing
358c8c4af0
processed ERROR package
2013-08-30 11:20:51 +08:00
Xing Xing
4997e30a77
runabled 0.2
2013-08-29 18:08:05 +08:00
Xing Xing
e5c30068cd
0.2 refactoring begining
2013-08-29 16:51:23 +08:00
Paul Mach
5e215b9257
Remove depenance on external libs for unique id
2013-08-25 22:49:00 -07:00
mikespook
8e009be940
#14 fixed
2013-04-24 16:58:06 +08:00
Paul Mach
f3b4013e2b
Update and Receive status correctly
2013-04-23 11:45:57 -07:00
Xing Xing
011c3253f7
issue 'use of closed network connection' of client fixed
2013-04-23 21:41:56 +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
Ingo Oeser
af4035284d
do not generate unique id on background submission
2013-02-18 19:50:14 +01:00
Xing Xing
6619b9a10e
move the auto-inc into the global
2013-02-03 21:34:13 +08:00
mikespook
af05460727
fixed the infinite loop of client
2013-01-24 18:13:02 +08:00
mikespook
16a965f52d
An infinite loop ... :(
2013-01-23 17:25:38 +08:00
mikespook
c00234ba9a
Refactoring the client api
2013-01-15 17:55:44 +08:00
mikespook
dbc06bf540
start refactoring...
2013-01-14 17:59:48 +08:00
mikespook
d6c6bfe9f0
moved to github
2012-12-21 11:11:37 +08:00
mikespook
624c61519f
using time.After instead of a separate goroutine
2012-05-30 09:54:22 +08:00
mikespook
a8f7c8ab9d
Read a empty data means connection error
2012-05-24 21:17:06 +08:00
mikespook
f14964bc81
add timeout to client.Do
2012-05-24 19:21:30 +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