开发者

Command line semaphore utility

开发者 https://www.devze.com 2022-12-28 07:31 出处:网络
I want to write a command line utility that can be used to synchronize the exe开发者_如何学Gocution off programs in different consoles.

I want to write a command line utility that can be used to synchronize the exe开发者_如何学Gocution off programs in different consoles.

Console A: 
$ first_program && semaphore -signal

Console B:
$ semaphore -wait && second_program

The first program takes a long take to complete. The second program can only start when the first program has finished.

Which synchronization object do I need to implement this?


You don't need to use Python for this. Considering you are using Unix, try this:

First, create a pipe for the semaphore.

mknod /tmp/semaphore p

Then, the programs:

Console A:
$ first_program && echo a > /tmp/semaphore

Console B:
$ read < /tmp/semaphore && second_program

Actually, this method works both ways. The read will block until there is a write, and vice versa.


If they're on the same machine the first program can touch a temporary file.

There is a Gamin module in python that will allow your second program to sit there and wait while not tying up resources. It isn't a busy wait, or doing anything with sleep or stuff like that.

0

精彩评论

暂无评论...
验证码 换一张
取 消