Make use of the samethread mode keyword.
authorWerner Koch <wk@gnupg.org>
Tue, 15 Apr 2014 14:40:48 +0000 (16:40 +0200)
committerWerner Koch <wk@gnupg.org>
Wed, 30 Apr 2014 16:38:14 +0000 (18:38 +0200)
* src/connection.c (connection_handler): Open stream with samethread.
* src/payprocd.c (already_running_p): Ditto.
* src/journal.c (start_record): Open memstream with samethread.

src/connection.c
src/journal.c
src/payprocd.c

index 71f9de4..4c10aff 100644 (file)
@@ -49,6 +49,8 @@ struct conn_s
   unsigned int idno;     /* Connection id for logging.  */
   int fd;                /* File descriptor for this connection.  */
   estream_t stream;      /* The corresponding stream object.  */
+                         /* N.B. The stream object mayl only be used
+                            by the connection thread.  */
   char *command;         /* The command line (malloced). */
   keyvalue_t dataitems;  /* The data items.  */
   const char *errdesc;   /* Optional description of an error.  */
@@ -738,7 +740,7 @@ cmd_ping (conn_t conn, char *args)
 
 
 \f
-/* The handler serving a connection.  */
+/* The handler serving a connection. */
 void
 connection_handler (conn_t conn)
 {
@@ -746,7 +748,7 @@ connection_handler (conn_t conn)
   keyvalue_t kv;
   char *cmdargs;
 
-  conn->stream = es_fdopen_nc (conn->fd, "r+");
+  conn->stream = es_fdopen_nc (conn->fd, "r+,samethread");
   if (!conn->stream)
     {
       err = gpg_error_from_syserror ();
index 9be2ac2..dbdd753 100644 (file)
@@ -229,7 +229,7 @@ start_record (char type)
 {
   estream_t fp;
 
-  fp = es_fopenmem (0, "w+");
+  fp = es_fopenmem (0, "w+,samethread");
   if (!fp)
     {
       log_error ("error creating new memory stream for the journal: %s\n",
index 6a03b9d..0a2ee45 100644 (file)
@@ -286,7 +286,7 @@ already_running_p (const char *name)
     }
 
   /* Also do an alive check for diagnositc reasons.  */
-  stream = es_fdopen (fd, "r+b");
+  stream = es_fdopen (fd, "r+b,samethread");
   if (!stream)
     {
       log_error ("failed to fdopen connected socket: %s\n",