score: Delete _CORE_RWLock_Timeout()

This function was identical to _Thread_queue_Timeout().  This makes
_Thread_queue_Enqueue_with_handler() obsolete.
This commit is contained in:
Sebastian Huber
2015-04-22 13:58:32 +02:00
parent 49d436497e
commit b0686b473d
7 changed files with 14 additions and 92 deletions
+1 -1
View File
@@ -174,7 +174,7 @@ libscore_a_SOURCES += src/percpuasm.c
## CORE_RWLOCK_C_FILES
if HAS_PTHREADS
libscore_a_SOURCES += src/corerwlock.c src/corerwlockobtainread.c \
src/corerwlockobtainwrite.c src/corerwlockrelease.c src/corerwlocktimeout.c
src/corerwlockobtainwrite.c src/corerwlockrelease.c
endif
## CORE_SEMAPHORE_C_FILES
@@ -167,21 +167,6 @@ CORE_RWLock_Status _CORE_RWLock_Release(
(_status) \
)
/**
* @brief RWLock specific thread queue timeout.
*
* This routine processes a thread which timeouts while waiting on
* an RWLock's thread queue. It is called by the watchdog handler.
*
* @param[in] id is the Id of thread to timeout
* @param[in] ignored is an unused pointer to a caller defined area
*/
void _CORE_RWLock_Timeout(
Objects_Id id,
void *ignored
);
/**
* This method is used to initialize core rwlock attributes.
*
+4 -18
View File
@@ -63,19 +63,6 @@ Thread_Control *_Thread_queue_Dequeue(
Thread_queue_Control *the_thread_queue
);
/**
* @brief Enqueues the currently executing thread on the_thread_queue.
*
* This routine enqueues the currently executing thread on
* the_thread_queue with an optional timeout.
*/
#define _Thread_queue_Enqueue( _the_thread_queue, _the_thread, _timeout ) \
_Thread_queue_Enqueue_with_handler( \
_the_thread_queue, \
_the_thread, \
_timeout, \
_Thread_queue_Timeout )
/**
* @brief Blocks a thread and places it on a thread.
*
@@ -89,11 +76,10 @@ Thread_Control *_Thread_queue_Dequeue(
* - INTERRUPT LATENCY:
* + single case
*/
void _Thread_queue_Enqueue_with_handler(
Thread_queue_Control *the_thread_queue,
Thread_Control *the_thread,
Watchdog_Interval timeout,
Thread_queue_Timeout_callout handler
void _Thread_queue_Enqueue(
Thread_queue_Control *the_thread_queue,
Thread_Control *the_thread,
Watchdog_Interval timeout
);
/**
+2 -3
View File
@@ -84,11 +84,10 @@ void _CORE_RWLock_Obtain_for_reading(
executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;
_ISR_Enable( level );
_Thread_queue_Enqueue_with_handler(
_Thread_queue_Enqueue(
&the_rwlock->Wait_queue,
executing,
timeout,
_CORE_RWLock_Timeout
timeout
);
/* return to API level so it can dispatch and we block */
+2 -4
View File
@@ -74,13 +74,11 @@ void _CORE_RWLock_Obtain_for_writing(
executing->Wait.return_code = CORE_RWLOCK_SUCCESSFUL;
_ISR_Enable( level );
_Thread_queue_Enqueue_with_handler(
_Thread_queue_Enqueue(
&the_rwlock->Wait_queue,
executing,
timeout,
_CORE_RWLock_Timeout
timeout
);
/* return to API level so it can dispatch and we block */
}
-45
View File
@@ -1,45 +0,0 @@
/**
* @file
*
* @brief RWLock Specific Thread Queue Timeout
* @ingroup ScoreRWLock
*/
/*
* COPYRIGHT (c) 1989-2007.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.org/license/LICENSE.
*/
#if HAVE_CONFIG_H
#include "config.h"
#endif
#include <rtems/score/corerwlockimpl.h>
#include <rtems/score/threadimpl.h>
#include <rtems/score/threadqimpl.h>
void _CORE_RWLock_Timeout(
Objects_Id id,
void *ignored
)
{
Thread_Control *the_thread;
Objects_Locations location;
the_thread = _Thread_Get( id, &location );
switch ( location ) {
case OBJECTS_ERROR:
#if defined(RTEMS_MULTIPROCESSING)
case OBJECTS_REMOTE: /* impossible */
#endif
break;
case OBJECTS_LOCAL:
_Thread_queue_Process_timeout( the_thread );
_Objects_Put_without_thread_dispatch( &the_thread->Object );
break;
}
}
+5 -6
View File
@@ -101,11 +101,10 @@ static void _Thread_queue_Requeue_priority(
);
}
void _Thread_queue_Enqueue_with_handler(
Thread_queue_Control *the_thread_queue,
Thread_Control *the_thread,
Watchdog_Interval timeout,
Thread_queue_Timeout_callout handler
void _Thread_queue_Enqueue(
Thread_queue_Control *the_thread_queue,
Thread_Control *the_thread,
Watchdog_Interval timeout
)
{
ISR_lock_Context lock_context;
@@ -127,7 +126,7 @@ void _Thread_queue_Enqueue_with_handler(
if ( timeout ) {
_Watchdog_Initialize(
&the_thread->Timer,
handler,
_Thread_queue_Timeout,
the_thread->Object.id,
NULL
);