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;
#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