Hacker Newsnew | comments | show | ask | jobs | submit login

Instead, use a "message reply" concept. For example, for your data you could send a tuple with a callback or a condition.

Then block on the condition, and have the lambda/delegate in the idle thread signal the condition. Make sure you hold the lock for the conditions mutex before sending the message though so that it is not a race condition.

#Sender

callback = SomeFunc

mutex.lock()

def worker():

    # ran in main

    callback()

    mutex.lock()

    cond.signal()

    mutex.unlock()
send_msg_to_idle(0, worker)

cond.wait()

mutex.unlock()




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: