On Thursday, 7 May 2020 at 01:02:57 UTC, ag0aep6g wrote:


Thank you, this is 110% helpful.

Actually, I'd like to return the excess 10%. My dmd compiler does not like:

   import core.thread: sleep;

so I put the code back the way I had, just to get on with work.

Use `shared` so that all threads use the same variables:

    shared bool running=true;
    shared char command = '?';


"shared" did the job. I had read about "thread local" and "shared" in D before, but did not comprehend. Now I do :)


This sequence of events is entirely possible:

    1) main: cmd = command
    2) cmdwatcher: command = c
    3) main: command = ' '

It won't happen often, but if it does, your input has no effect.

For this tool, lost key hits are not a problem. At least, that's what I say for now. I may be back next week for help with that. For now, the trousered ape running the software will just have to tap the key again. (Or the key + Enter.)

Reply via email to