The person holding the chicken is the only person who is allowed to talk. If you don't hold the chicken you cannot speak.
Replace Chicken with Mutex and person with thread and you basically have the concept of a mutex.
Here's what happens inside the withoutOverlapping method: public function withoutOverlapping() { $this->withoutOverlapping = true; return $this->then(function () { $this->mutex->forget($this); })->skip(function () { return $this->mutex->exists($this); }); }
Also before running the job, Laravel does the following check inside the Console\Scheduling\Event::run() method: if ($this->withoutOverlapping && !