1. A method comprising: detecting, by a producer thread running on a first processor, an external interrupt; acquiring, by the producer thread, a spinlock; in response to acquiring the spinlock, sending, by the producer thread, an event to the consumer thread; while the consumer thread wakes up: creating, by the producer thread, a task, and publishing, by the producer thread, the created task; in response to publishing the created task, releasing, by the producer thread, the spinlock; in response to releasing the spinlock, retrieving, by a consumer thread running on a second processor, the published task; and executing, by the consumer thread, the retrieved task.