| Commit message (Collapse) | Author | Files | Lines |
|
Turn pthread_spinlock_t into a self-contained object. On uni-processor
configurations, interrupts are disabled in the lock/trylock operations
and the previous interrupt status is restored in the corresponding
unlock operations. On SMP configurations, a ticket lock is a acquired
and released in addition.
The self-contained pthread_spinlock_t object is defined by Newlib in
<sys/_pthreadtypes.h>.
typedef struct {
struct _Ticket_lock_Control _lock;
__uint32_t _interrupt_state;
} pthread_spinlock_t;
This implementation is simple and efficient. However, this test case of
the Linux Test Project would fail due to call of printf() and sleep()
during spin lock ownership:
https://github.com/linux-test-project/ltp/blob/master/testcases/open_posix_testsuite/conformance/interfaces/pthread_spin_lock/1-2.c
There is only limited support for profiling on SMP configurations.
Delete CORE spinlock implementation.
Update #2674.
|
|
|
|
|
|
|
|
Script does what is expected and tries to do it as
smartly as possible.
+ remove occurrences of two blank comment lines
next to each other after Id string line removed.
+ remove entire comment blocks which only exited to
contain CVS Ids
+ If the processing left a blank line at the top of
a file, it was removed.
|
|
|
|
* psx02/init.c, psx02/task.c, psx03/init.c, psx04/init.c,
psx04/task1.c, psx04/task2.c, psx04/task3.c, psx05/init.c,
psx05/task.c, psx05/task2.c, psx05/task3.c, psx06/init.c,
psx06/task.c, psx06/task2.c, psx07/init.c, psx08/init.c,
psx08/task2.c, psx08/task3.c, psx09/init.c, psx10/init.c,
psx10/task.c, psx10/task2.c, psx10/task3.c, psx11/init.c,
psx11/task.c, psx12/init.c, psxalarm01/init.c, psxbarrier01/test.c,
psxcancel01/init.c, psxchroot01/test.c, psxitimer/init.c,
psxkey01/task.c, psxkey02/init.c, psxkey03/init.c, psxmount/test.c,
psxmsgq01/init.c, psxmsgq03/init.c, psxmsgq04/init.c,
psxrwlock01/test.c, psxsem01/init.c, psxsignal01/init.c,
psxsignal01/task1.c, psxsignal02/init.c, psxsignal03/init.c,
psxsignal05/init.c, psxspin01/test.c, psxspin02/test.c,
psxstack01/init.c, psxstack02/init.c, psxualarm/init.c: Eliminate
double space after parenthesis on rtems_test_assert().
|
|
* psxrwlock01/test.c, psxspin01/test.c, psxspin02/test.c: Fix spacing
and compilation issues. Initial test build was accidentally without
POSIX enabled.
|
|
* include/pmacros.h, psx01/task.c, psx02/init.c, psx02/task.c,
psx03/init.c, psx03/task.c, psx04/init.c, psx04/task1.c,
psx04/task2.c, psx04/task3.c, psx05/init.c, psx05/task.c,
psx05/task2.c, psx05/task3.c, psx06/init.c, psx06/task.c,
psx06/task2.c, psx07/init.c, psx08/init.c, psx08/task2.c,
psx08/task3.c, psx09/init.c, psx10/init.c, psx10/task.c,
psx10/task2.c, psx10/task3.c, psx11/init.c, psx11/task.c,
psx12/init.c, psxalarm01/init.c, psxbarrier01/test.c,
psxcancel01/init.c, psxchroot01/test.c, psxclock/init.c,
psxfile01/test.c, psxfile01/test_cat.c, psxfile01/test_extend.c,
psxfile01/test_write.c, psxitimer/init.c, psxkey01/task.c,
psxkey02/init.c, psxkey03/init.c, psxmount/test.c, psxmsgq01/init.c,
psxmsgq03/init.c, psxmsgq04/init.c, psxreaddir/test.c,
psxrwlock01/test.c, psxsem01/init.c, psxsignal01/init.c,
psxsignal01/task1.c, psxsignal02/init.c, psxsignal03/init.c,
psxsignal05/init.c, psxspin01/test.c, psxspin02/test.c,
psxstack01/init.c, psxstat/test.c, psxtime/test.c, psxualarm/init.c:
Use rtems_test_assert() consistently instead of system assert().
rtems_test_assert() is designed to integrate into the RTEMS test
suite infrastructure.
|
|
|
|
Add missing prototypes.
|
|
* Makefile.am, configure.ac: Add psxspin02 to exercise case where
trylock is unable to obtain the spinlock and that attempting to
unlock a spinlock from a thread which did not lock it works as
expected.
* psxspin02/.cvsignore, psxspin02/Makefile.am, psxspin02/main.c,
psxspin02/psxspin02.doc, psxspin02/psxspin02.scn, psxspin02/test.c:
New files.
|