bokeh.document.locking#

class UnlockedDocumentProxy(doc: Document)[source]#

包装 Document 对象,以便仅公开可以在未锁定回调或线程中安全使用的函数。尝试以其他方式访问或更改 Document 将导致异常。

__init__(doc: Document) None[source]#
add_next_tick_callback(callback: Callback) NextTickCallback[source]#

添加“下一刻”回调。

参数:

callback (callable)

remove_next_tick_callback(callback: NextTickCallback) None[source]#

移除“下一刻”回调。

参数:

callback (callable)

without_document_lock(func: F) NoLockCallback[F][source]#

包装回调函数,使其在不先获取文档锁的情况下执行。

参数:

func (callable) – 要包装的函数

返回:

一个被包装的函数,在没有 Document 锁的情况下执行。

返回类型:

callable

在未锁定的回调内部,修改 curdoc() 是完全不安全的。回调内部 curdoc() 的值将是 Document 的一个特殊包装版本,它只允许安全操作,即

只有这些可以在不获取文档锁的情况下安全使用。要对文档进行其他更改,必须添加一个下一刻回调,并在第二个回调中对 curdoc() 进行更改。

尝试以其他方式访问或更改 Document 将导致引发异常。

func 可以是同步函数、异步函数或用 asyncio.coroutine 装饰的函数。如果 func 是后两者中的任何一个,则返回的函数将是异步函数。