[sheepdog] [PATCH v2 09/11] sheep: assert when exec_req are called in the main thread
MORITA Kazutaka
morita.kazutaka at lab.ntt.co.jp
Fri Apr 19 09:14:58 CEST 2013
Calling these functions in the main thread lead to dead-lock and must
be avoided.
Signed-off-by: MORITA Kazutaka <morita.kazutaka at lab.ntt.co.jp>
---
sheep/request.c | 2 ++
sheep/sockfd_cache.c | 2 ++
2 files changed, 4 insertions(+)
diff --git a/sheep/request.c b/sheep/request.c
index c2f1d68..85d62c9 100644
--- a/sheep/request.c
+++ b/sheep/request.c
@@ -451,6 +451,8 @@ int exec_local_req(struct sd_req *rq, void *data)
eventfd_t value = 1;
int ret;
+ assert(is_worker_thread());
+
req = alloc_local_request(data, rq->data_length);
req->rq = *rq;
req->local_req_efd = eventfd(0, 0);
diff --git a/sheep/sockfd_cache.c b/sheep/sockfd_cache.c
index 1e0d6cf..217472d 100644
--- a/sheep/sockfd_cache.c
+++ b/sheep/sockfd_cache.c
@@ -509,6 +509,8 @@ int sheep_exec_req(const struct node_id *nid, struct sd_req *hdr, void *buf)
struct sockfd *sfd;
int ret;
+ assert(is_worker_thread());
+
sfd = sheep_get_sockfd(nid);
if (!sfd)
return SD_RES_NETWORK_ERROR;
--
1.8.1.3.566.gaa39828
More information about the sheepdog
mailing list