0

I am running Apache, Phusion Passenger, Ruby on Rails website. I have a critical section that I can only allow 1 execution at the same time. I noticed that phusion passenger uses fork() to spawn the processes for each request according to this documentation. Since they are individual process, I noticed that all my Mutex.synchronize do not work. I added some loggings inside the critical section, and I still noticed logs being printed interleaving.

I tried all these:

  1. Mutex.synchronize
  2. Thread.exclusive
  3. Monitor.synchronize

None of them works.

How do you do synchronization in this case? Thanks a lot.

4

1 に答える 1