bokeh.document.locking

class bokeh.document.locking.UnlockedDocumentProxy(doc)

Wrap a Document object so that only methods that can safely be used from unlocked callbacks or threads are exposed. Attempts to otherwise access or change the Document results in an exception.

add_next_tick_callback(callback)

Add a “next tick” callback.

Parameters:callback (callable) –
remove_next_tick_callback(callback)

Remove a “next tick” callback.

Parameters:callback (callable) –
bokeh.document.locking.without_document_lock(func)

Wrap a callback function to execute without first obtaining the document lock.

Parameters:func (callable) – The function to wrap
Returns:a function wrapped to execute without a |Document| lock.
Return type:callable

While inside an unlocked callback, it is completely unsafe to modify curdoc(). The value of curdoc() inside the callback will be a specially wrapped version of |Document| that only allows safe operations, which are:

  • add_next_tick_callback()
  • remove_next_tick_callback()

Only these may be used safely without taking the document lock. To make other changes to the document, you must add a next tick callback and make your changes to curdoc() from that second callback.

Attempts to otherwise access or change the Document will result in an exception being raised.