summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cpukit/rtems/src/barrierwait.c2
-rw-r--r--cpukit/rtems/src/msgqreceive.c2
-rw-r--r--cpukit/rtems/src/regiongetsegment.c10
-rw-r--r--cpukit/rtems/src/semobtain.c6
4 files changed, 16 insertions, 4 deletions
diff --git a/cpukit/rtems/src/barrierwait.c b/cpukit/rtems/src/barrierwait.c
index c0931689c7..4811c218b8 100644
--- a/cpukit/rtems/src/barrierwait.c
+++ b/cpukit/rtems/src/barrierwait.c
@@ -38,7 +38,7 @@ rtems_status_code rtems_barrier_wait(
return RTEMS_INVALID_ID;
}
- _Thread_queue_Context_set_relative_timeout( &queue_context, timeout );
+ _Thread_queue_Context_set_enqueue_timeout_ticks( &queue_context, timeout );
status = _CORE_barrier_Seize(
&the_barrier->Barrier,
_Thread_Executing,
diff --git a/cpukit/rtems/src/msgqreceive.c b/cpukit/rtems/src/msgqreceive.c
index d509faf988..2304be735a 100644
--- a/cpukit/rtems/src/msgqreceive.c
+++ b/cpukit/rtems/src/msgqreceive.c
@@ -61,7 +61,7 @@ rtems_status_code rtems_message_queue_receive(
);
executing = _Thread_Executing;
- _Thread_queue_Context_set_relative_timeout( &queue_context, timeout );
+ _Thread_queue_Context_set_enqueue_timeout_ticks( &queue_context, timeout );
status = _CORE_message_queue_Seize(
&the_message_queue->message_queue,
executing,
diff --git a/cpukit/rtems/src/regiongetsegment.c b/cpukit/rtems/src/regiongetsegment.c
index dfd476ccc0..02acefb004 100644
--- a/cpukit/rtems/src/regiongetsegment.c
+++ b/cpukit/rtems/src/regiongetsegment.c
@@ -27,11 +27,19 @@
static void _Region_Enqueue_callout(
Thread_queue_Queue *queue,
Thread_Control *the_thread,
+ Per_CPU_Control *cpu_self,
Thread_queue_Context *queue_context
)
{
Region_Control *the_region;
+ _Thread_queue_Add_timeout_ticks(
+ queue,
+ the_thread,
+ cpu_self,
+ queue_context
+ );
+
the_region = REGION_OF_THREAD_QUEUE_QUEUE( queue );
_Region_Unlock( the_region );
}
@@ -91,11 +99,11 @@ rtems_status_code rtems_region_get_segment(
&queue_context,
STATES_WAITING_FOR_SEGMENT
);
+ _Thread_queue_Context_set_timeout_ticks( &queue_context, timeout );
_Thread_queue_Context_set_enqueue_callout(
&queue_context,
_Region_Enqueue_callout
);
- _Thread_queue_Context_set_relative_timeout( &queue_context, timeout );
_Thread_queue_Enqueue(
&the_region->Wait_queue.Queue,
the_region->wait_operations,
diff --git a/cpukit/rtems/src/semobtain.c b/cpukit/rtems/src/semobtain.c
index b81612eaae..db0c3f2e0c 100644
--- a/cpukit/rtems/src/semobtain.c
+++ b/cpukit/rtems/src/semobtain.c
@@ -69,7 +69,11 @@ rtems_status_code rtems_semaphore_obtain(
executing = _Thread_Executing;
wait = !_Options_Is_no_wait( option_set );
- _Thread_queue_Context_set_relative_timeout( &queue_context, timeout );
+ if ( wait ) {
+ _Thread_queue_Context_set_enqueue_timeout_ticks( &queue_context, timeout );
+ } else {
+ _Thread_queue_Context_set_enqueue_do_nothing_extra( &queue_context );
+ }
switch ( the_semaphore->variant ) {
case SEMAPHORE_VARIANT_MUTEX_INHERIT_PRIORITY: