On 17/05/15 14:14, Gedare Bloom wrote:
On Sun, May 17, 2015 at 7:04 AM, Gedare Bloom <ged...@rtems.org> wrote:
On Fri, May 15, 2015 at 7:41 AM, Sebastian Huber
<sebastian.hu...@embedded-brains.de> wrote:
/**
- * @brief Gets a pointer to the "first" thread on the_thread_queue.
+ * @brief Returns the first thread on the thread queue if it exists, otherwise
+ * @c NULL (locked).
+ *
+ * The caller must be the owner of the thread queue lock.
+ *
+ * @param[in] the_thread_queue The thread queue.
*
- * This function returns a pointer to the "first" thread
- * on the_thread_queue. The "first" thread is selected
- * based on the discipline of the_thread_queue.
+ * @retval NULL No thread is present on the thread queue.
+ * @retval first The first thread on the thread queue according to the enqueue
+ * order.
+ */
+Thread_Control *_Thread_queue_First_locked(
+ Thread_queue_Control *the_thread_queue
+);
+
In other places we call such a function variant _unprotected. In the
doxygen, I don't know what you mean by @c NULL (locked) in the @brief,
or why there are two @brief.
Please clarify the distinctions between _locked(), _critical(), and
_unprotected().
The _locked() is commonly used in Linux and FreeBSD and indicates that
the caller must be the lock owner. The _unprotected() is mainly used for
the chains. Once the Giant lock is eliminated, we can delete the
"protected" chain variants and drop the _unprotected().
What about @c NULL (locked) -> @c NULL (caller locked variant)?
The _critical() functions call _Thread_Dispatch_disable_critical() and
do an ISR lock to thread dispatch disabled transition to carry out
scheduler operations.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel