NaviServer - programmable web server


[ Main Table Of Contents | Table Of Contents | Keyword Index ]

ns_thread(n) 4.99.5 naviserver "NaviServer Built-in Commands"

Name

ns_thread - Operate on threads

Table Of Contents

Synopsis

Description

This command provides a mechanism to manipulate threads. The legal options (which may be abbreviated) are:

COMMANDS

ns_thread ?arg arg ...?
ns_thread begin script

ns_thread create script Initializes a new thread and starts it executing script. Threads created this way are joinable and must be ns_thread joined, otherwise the resources held by the thread will not be freed until the thread is joined. Returns a handle to the new thread.

ns_thread begindetached script

Initializes a new thread and starts it executing script. Threads created this way are detached and do not need to be (nor can be) joined.

ns_thread get

Returns the handle for the current thread.

ns_thread getid

Returns the current thread's thread ID as an integer. This thread ID corresponds to the third element in the sub-list returned from ns_info threads.

ns_thread name ?name?

Returns the name of the current thread. Optionally sets the thread name if name is specified.

ns_thread join tid

Attempts to join the thread specified by thread handle tid. If the thread is still executing, the caller will block until the thread being joined completes. Returns the return value of the script that the thread being joined was executing. NOTE: Attempting to join a thread that has already been joined will currently crash the server.

ns_thread stackinfo

Returns the maximum available size of the C stack and the currently free size of the C stack from the current thread in a form usable for "array set". For example the command might return "max 2048000 free 2024408"

ns_thread yield

Causes the current thread to yield its CPU to other running threads.

Calling ns_thread join on an invalid thread ID or a thread ID that has already been joined will cause the server to abort with a fatal error. See

Keywords

stack