diff --git a/documentation/RELEASE_NOTES.html b/documentation/RELEASE_NOTES.html index fa9727aff..b3e266031 100644 --- a/documentation/RELEASE_NOTES.html +++ b/documentation/RELEASE_NOTES.html @@ -26,6 +26,13 @@ release.

--> +

VxWorks Minimum Version Requirements

+ +

The implementation of the epicsThreadMustJoin() functionality +described below requires facilities that were added to the OS in VxWorks 6.9, so +that is now the oldest version which this release of EPICS can be built +against.

+

Add epicsThreadCreateOpt() and epicsThreadMustJoin()

epicsThreadCreateOpt() is an alternative to epicsThreadCreate() which @@ -45,8 +52,16 @@ void startitup(void) {

If the new epicsThreadOpts::joinable option flag is set (not the default), -then epicsThreadMustJoin() needs to be called to free up thread resources. -This function will block until the thread main function has returned.

+then epicsThreadMustJoin() must be called with that +thread's epicsThreadId when/after the thread exits, to free up thread resources. +This function will block until the thread's main function has returned, after +which the epicsThreadId will no longer be valid.

+ +

A thread which was created with the joinable flag set may itself call +epicsThreadMustJoin() passing its own epicsThreadId. This marks the +thread as no longer being joinable, so it will then free the thread resources +itself when its main function returns. The epicsThreadId for a thread that is +not joinable gets invalidated as soon as its main function returns.

Launchpad Bugs