]> rtime.felk.cvut.cz Git - frescor/fna.git/blobdiff - src_frescan/frescan_requests_queue.c
add a lock for the queue structures when dequeued, for th moment is hardwired to...
[frescor/fna.git] / src_frescan / frescan_requests_queue.c
index baa2db3eb0057c268afc21149bc3dda8fde245d6..0d61ad5273560ddc7ace42a195bcc9b70edc3a11 100644 (file)
@@ -37,6 +37,7 @@ struct request_t {
         frescan_robj_id_t   reply;
         frescan_contract_t  *contract;
         frescan_node_t      src;
+        void                *return_info;
         struct list_head    request_list;
         int pool_pos;
 };
@@ -181,6 +182,18 @@ int frescan_request_set_src(frescan_request_id_t id, frescan_node_t src)
         return 0;
 }
 
+/**
+ * frescan_request_set_return_info()
+ *
+ **/
+
+int frescan_request_set_return_info(frescan_request_id_t id,
+                                    void *return_info)
+{
+        the_requests_pool[id].return_info = return_info;
+        return 0;
+}
+
 /**
  * frescan_request_get_type()
  *
@@ -227,6 +240,18 @@ int frescan_request_get_src(frescan_request_id_t id, frescan_node_t *src)
         return 0;
 }
 
+/**
+ * frescan_request_get_return_info()
+ *
+ **/
+
+int frescan_request_get_return_info(frescan_request_id_t id,
+                                    void **return_info)
+{
+        *return_info = the_requests_pool[id].return_info;
+        return 0;
+}
+
 /**
  * frescan_requestqueue_enqueue()
  *
@@ -272,7 +297,7 @@ int frescan_requestqueue_dequeue(frescan_request_id_t *id)
 {
         int err;
         struct list_head *pos;
-        struct request_t *request;
+        struct request_t *request = NULL;
 
         err = fosa_mutex_lock(&requests_mutex);
         if (err != 0) return err;