+ int wakeup_fd = shm_get_wakeup_fd(handle, &buf->self._ref);
+
+ if (wakeup_fd >= 0) {
+ int ret;
+ /*
+ * Wake-up the other end by
+ * writing a null byte in the
+ * pipe (non-blocking).
+ */
+ do {
+ ret = write(wakeup_fd, "", 1);
+ } while (ret == -1L && errno == EINTR);
+ }