The connection between the redis client and server uses a stream
pair. Although SWI-Prolog stream I/O is thread-safe, having multiple
threads using this same connection will mixup writes and their replies.
At the moment, the following locking is in place.
- Connections created using redis_connect/3
are not locked. This implies the connection handle may be used
from a single thread only, or redis/3
requests must be protected using with_mutex/2.
- Redis/3 request using a server name established using redis_server/3
are locked using a mutex with the same name as the server name.