diff options
Diffstat (limited to 'docs/src/atomic.dox')
-rw-r--r-- | docs/src/atomic.dox | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/docs/src/atomic.dox b/docs/src/atomic.dox deleted file mode 100644 index d3bc43ba5..000000000 --- a/docs/src/atomic.dox +++ /dev/null @@ -1,57 +0,0 @@ -/*
- ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010 Giovanni Di Sirio.
-
- This file is part of ChibiOS/RT.
-
- ChibiOS/RT is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 3 of the License, or
- (at your option) any later version.
-
- ChibiOS/RT is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-*/
-
-/**
- * @page article_atomic Invoking multiple primitives as a single atomic operation
- * It is often necessary to invoke multiple operations involving a
- * reschedule as a single atomic operation.<br>
- * ChibiOS/RT already implements APIs that perform complex operations, as
- * example the API @p chSemSignalWait() performs two operations atomically.<br>
- * If more complex operations are required in your application then it is
- * possible to build macro-operations, see the following example:
- * @code
- chSysLock();
-
- chSemSignalI(&sem1);
- chSemSignalI(&sem2);
- chMtxUnlockS();
- chSchRescheduleS();
-
- chSysUnlock();
- * @endcode
- * The above example performs a signal operation on two semaphores, unlocks the
- * last acquired mutex and finally performs a reschedule. All the operations
- * are performed atomically.<br>
- * An hypothetical @p chSemSignalSignalWait() operation could be implemented as
- * follow:
- * @code
- chSysLock();
-
- chSemSignalI(&sem1);
- chSemSignalI(&sem2);
- chSemWaitS(&Sem3); /* May reschedule or not. */
- chSchRescheduleS(); /* This one reschedules if necessary. */
-
- chSysUnlock();
- * @endcode
- * In general multiple @ref I-Class and (non rescheduling) @ref S-Class APIs
- * can be included and the block is terminated by a rescheduling @ref S-Class
- * API. An extra @p chSchRescheduleS() can be present at the very end of the
- * block, it only reschedules if a reschedule is still required.
- */
|