mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-08-27 19:47:16 +08:00
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:
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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
|
||||
);
|
||||
|
||||
/**
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user