On Monday, 28 August 2017 at 06:27:20 UTC, Jacob Carlborg wrote:
On 2017-08-25 23:25, Enjoys Math wrote:
Something like this:
module file_watcher;
import std.concurrency;
import std.file;
import std.signals;
import std.datetime;
void fileWatcher(Tid tid, string filename, int loopSleep) {
auto modified0 = timeLastModified(filename);
while (true) {
modified = timeLastModified(filename);
if (modified > modified0) {
modified0 = modified;
//if (onFileChange !is null)
// onFileChange(receiver);
}
sleep(dur!"msecs"(loopSleep));
}
}
But I'm not sure how to send the onFiledChange event.
A delegate perhaps?
Or you can look at any of the existing event driven libraries
that do this:
http://code.dlang.org/packages/vibe-core
http://code.dlang.org/packages/libasync
No a plain delegate won't work. There's something you're not
telling me because I've tried delegates. They have to be shared
or something, and that causes a big mess with my code.