aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/nRF5_SDK_15.0.0_a53641a/external/protothreads/pt-1.4/doc/pt-doc.txt
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/nRF5_SDK_15.0.0_a53641a/external/protothreads/pt-1.4/doc/pt-doc.txt')
-rw-r--r--thirdparty/nRF5_SDK_15.0.0_a53641a/external/protothreads/pt-1.4/doc/pt-doc.txt58
1 files changed, 58 insertions, 0 deletions
diff --git a/thirdparty/nRF5_SDK_15.0.0_a53641a/external/protothreads/pt-1.4/doc/pt-doc.txt b/thirdparty/nRF5_SDK_15.0.0_a53641a/external/protothreads/pt-1.4/doc/pt-doc.txt
new file mode 100644
index 0000000..2d6742e
--- /dev/null
+++ b/thirdparty/nRF5_SDK_15.0.0_a53641a/external/protothreads/pt-1.4/doc/pt-doc.txt
@@ -0,0 +1,58 @@
+/**
+\defgroup pt Protothreads
+@{
+Protothreads are implemented in a single header file, pt.h, which
+includes the local continuations header file, lc.h. This file in turn
+includes the actual implementation of local continuations, which
+typically also is contained in a single header file.
+
+*/
+
+/** @} */
+
+/**
+\defgroup examples Examples
+@{
+
+\section example-small A small example
+
+This first example shows a very simple program: two protothreads
+waiting for each other to toggle two flags. The code illustrates how
+to write protothreads code, how to initialize protothreads, and how to
+schedule them.
+
+\include example-small.c
+
+
+\section example-code-lock A code-lock
+This example shows how to implement a simple code lock - the kind of
+device that is placed next to doors and that you have to push a four
+digit number into in order to unlock the door.
+
+The code lock waits for key presses from a numeric keyboard and if the
+correct code is entered, the lock is unlocked. There is a maximum time
+of one second between each key press, and after the correct code has
+been entered, no more keys must be pressed for 0.5 seconds before the
+lock is opened.
+
+\include example-codelock.c
+
+\section example-buffer The bounded buffer with protothread semaphores
+
+The following example shows how to implement the bounded buffer
+problem using the protothreads semaphore library. The example uses
+three protothreads: one producer() protothread that produces items,
+one consumer() protothread that consumes items, and one
+driver_thread() that schedules the producer and consumer protothreads.
+
+Note that there is no need for a mutex to guard the add_to_buffer()
+and get_from_buffer() functions because of the implicit locking
+semantics of protothreads - a protothread will never be preempted and
+will never block except in an explicit PT_WAIT statement.
+
+\include example-buffer.c
+
+*/
+
+
+/** @} */