Commit Graph

13 Commits

Author SHA1 Message Date
Jungtaek Lim
1877185153 Merge branch 'master' into pipeline-and-transaction-can-handle-responses-on-their-own-status
* it's broken with later features, resetState()
* fixed resetState() to make it work with this PR

Conflicts:
	src/main/java/redis/clients/jedis/BinaryJedis.java
	src/main/java/redis/clients/jedis/Connection.java
	src/main/java/redis/clients/jedis/Pipeline.java
	src/main/java/redis/clients/jedis/Transaction.java
	src/main/java/redis/clients/jedis/TransactionBlock.java
2014-08-08 10:46:43 +09:00
Jonathan Leibiusky
8fef62e21d Merge branch 'pubsub-concurrency' of github.com:ibuildthecloud/jedis into ibuildthecloud-pubsub-concurrency
Conflicts:
	src/main/java/redis/clients/jedis/Connection.java
	src/main/java/redis/clients/jedis/JedisPubSub.java
2014-01-31 13:28:29 -05:00
Jonathan Leibiusky
105ca9f5bb Reformat all files in the project according to java conventions. 2014-01-31 11:24:06 -05:00
Darren Shepherd
f11c1622de Allow safe multi-threaded access to JedisPubSub
If Thread A calls a subscribe method on Jedis it will block on a socket read
call waiting for messages or subscription notifications.  Thread B is now free
to call additional methods on JedisPubSub to change the current subscriptions
that thread A is waiting for.  Essentially Thread A will do reads on the
socket and Thread B will do writes.

An issue occurs in that while Thread A is doing reads, in the
getObjectMultiBulkReply() method there is an implicit flush() call.  This
means both Thread A and Thread B may do a write to the socket.  Under this
situation if Thread A does a flush while Thread B is writing the internal
buffer will be corrupted.  The fix is to make thread A never call flush().
This allows Thread A to be solely reads and Thread B to be solely writes.

Additionally since Thread B is sending commands, the internal pipeline count
is incremented and never decremented.  So when Thread A terminates it's read
it resets the pipeline count.
2014-01-16 23:48:08 -07:00
Jonathan Leibiusky
acb1eb594f throw a JedisConnectionException if unsubscribing from a not subscribed JedisPubSub instance 2011-05-11 14:56:05 -03:00
Jonathan Leibiusky
28fb816bef pubsub should flush commands ASAP since it won't read from the socket 2011-02-28 13:12:47 -03:00
Jonathan Leibiusky
2a4a43f4cd add JedisDataException and JedisConnectionException 2011-01-30 17:46:17 -03:00
Neil Gentleman
d18cc4bd13 incr/decr operate on 64-bit numbers. Switching from Integer to Long 2010-11-25 09:45:34 -03:00
Jonathan Leibiusky
098de44a07 add support for java 1.5 2010-11-21 19:53:43 -03:00
Yaourt
11fec5c182 Ready to be merged back to master ...
Last buggy U tests fixed.
2010-11-05 14:47:50 +01:00
Jonathan Leibiusky
08f8432215 now it is possible to subscribe and unsubscribe on a JedisPubSub instance 2010-11-02 23:18:24 -03:00
KARASZI István
7c680634a3 autoboxings fixed 2010-09-10 23:53:19 +08:00
Jonathan Leibiusky
2a1ca391e0 Added pubsub support 2010-08-07 17:54:14 -03:00