Commit graph

17 commits

Author SHA1 Message Date
Sönke Ludwig
6e839de7e2 Refactor PollEventDriverWatchers.
- Better encapsulates the mutex protection inside PollingThread
- Uses mallocT/freeT to allocate snapshot nodes
2018-10-24 11:38:14 +02:00
Sönke Ludwig
e7e4a0f5f5 Make the Posix driver initialization nogc. 2018-10-24 11:38:14 +02:00
Sönke Ludwig
7da41301af Tighten the file descriptor slot checks.
Gives the chance to detect possible dangling file descriptors earlier.
2018-03-17 13:11:44 +01:00
Sönke Ludwig
7bfbb64899 Add userData!T properties for all descriptor based primitives. 2018-03-16 13:39:03 +01:00
Sönke Ludwig
df78af96bb Use a custom nogc_assert in cleanup code.
Unfortunately the built-in assert GC allocates an exception, which means that if called directly or indirectly form a finalizer, the assertion will not become visible and instead an InvalidMemoryOperationError is thrown.

This implements a custom nogc_assert() function that directly prints the assertion message and uses abort() to end the process.
2018-03-11 13:56:10 +01:00
Sönke Ludwig
43ef41d4fa Fix deprecation warning on DMD 2.079.0. 2018-03-06 20:09:03 +01:00
Sönke Ludwig
6e2938297b Set O_CLOEXEC on the remaining FDs that are created by eventcore. 2017-12-19 22:10:14 +01:00
Sönke Ludwig
9ca1a4c3a6 Fix inotify based directory watcher for recursive directory adds.
Newly added folders were not scanned recursively, which would result in sub folders that already exist or are added concurrently to not be watched.
2017-12-02 02:54:13 +01:00
Sönke Ludwig
c8eb30f6f0 Remove polling threads from map. 2017-11-25 00:26:20 +01:00
Sönke Ludwig
19879712e6 Fix shutdown procedure and rename event order for the polling watcher.
Renames should always be reported as removed->added instead of added->removed.
2017-11-23 23:11:16 +01:00
Sönke Ludwig
1d4fbc4fa2 Fixup poll driver. 2017-11-23 23:11:16 +01:00
Sönke Ludwig
a9ae496fb4 Avoid "." path in InotifyEventDriverWatchers.
The vibe-core tests broke because a "/./" path segment slipped into the resulting paths.
2017-11-22 17:07:49 +01:00
Sönke Ludwig
5246593432 Fix handling recursive inotify based directory watchers. 2017-11-21 10:42:21 +01:00
Sönke Ludwig
99088e1202 Implement a generic polling based directory watcher.
This is used on platforms that don't have a specialized watcher implementation.
2017-11-21 10:42:21 +01:00
Sönke Ludwig
d99eb1be34
Fix waiter count tracking in the Posix driver. Fixes #8. 2017-06-10 10:27:55 +02:00
Sönke Ludwig
b52747247b
Fix Linux compilation. 2017-01-25 12:33:00 +01:00
Sönke Ludwig
d1829669ec Split up Posix event driver into separate files. 2017-01-25 00:11:57 +01:00