| 265 | } |
| 266 | |
| 267 | static void dm_cond_event_resume(int sender, void *param) |
| 268 | { |
| 269 | int ret; |
| 270 | static unsigned long r = 1; |
| 271 | struct dm_cond *cond = (struct dm_cond *)param; |
| 272 | |
| 273 | /* signal the reactor that the result is available */ |
| 274 | do { |
| 275 | ret = write(cond->sync.event.fd, &r, sizeof r); |
| 276 | } while (ret < 0 && (errno == EINTR || errno == EAGAIN)); |
| 277 | if (ret < 0) |
| 278 | LM_ERR("could not notify resume: %s\n", strerror(errno)); |
| 279 | |
| 280 | dm_cond_unref(cond); |
| 281 | } |
| 282 | |
| 283 | static void dm_cond_signal(struct dm_cond *cond) |
| 284 | { |
nothing calls this directly
no test coverage detected