]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
EventSocket: Add new event type pipe support
authorHaomai Wang <haomaiwang@gmail.com>
Tue, 4 Aug 2015 09:50:36 +0000 (17:50 +0800)
committerHaomai Wang <haomai@xsky.com>
Tue, 1 Dec 2015 02:02:59 +0000 (10:02 +0800)
Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
src/common/event_socket.h
src/include/event_type.h

index f2ac92de5b39a57de8ef9f60f726f88eb1d71b57..7bbd7ec33e25f66bcdf0178925d3a84257aa1369 100644 (file)
@@ -25,17 +25,27 @@ class EventSocket {
   EventSocket(): socket(-1), type(EVENT_SOCKET_TYPE_NONE) {}
   bool is_valid() const { return socket != -1; }
   int init(int fd, int t) {
+    switch (t) {
+      case EVENT_SOCKET_TYPE_PIPE:
 #ifdef HAVE_EVENTFD
-    if (t == EVENT_SOCKET_TYPE_EVENTFD) {
-      socket = fd;
-      type = t;
-      return 0;
-    }
+      case EVENT_SOCKET_TYPE_EVENTFD:
 #endif
+      {
+        socket = fd;
+        type = t;
+        return 0;
+      }
+    }
     return -1;
   }
   int notify() {
     switch (type) {
+      case EVENT_SOCKET_TYPE_PIPE:
+      {
+        char buf[1];
+        buf[0] = 'i';
+        return write(socket, buf, 1);
+      }
       case EVENT_SOCKET_TYPE_EVENTFD:
       {
         uint64_t value = 1;
index adab6907227ab13ab80f4cb39233d69c37b565a1..696e7664b3a18ce53656b394d5a77d9c0ea1f4c2 100644 (file)
@@ -16,6 +16,7 @@
 #define CEPH_COMMON_EVENT_TYPE_H
 
 #define EVENT_SOCKET_TYPE_NONE 0
-#define EVENT_SOCKET_TYPE_EVENTFD 1
+#define EVENT_SOCKET_TYPE_PIPE 1
+#define EVENT_SOCKET_TYPE_EVENTFD 2
 
 #endif