OpenMAXBellagio 0.9.3
tsemaphore.c File Reference
#include <pthread.h>
#include <sys/time.h>
#include <errno.h>
#include "tsemaphore.h"
#include "omx_comp_debug_levels.h"

Go to the source code of this file.

Functions

OSCL_EXPORT_REF int tsem_init (tsem_t *tsem, unsigned int val)
OSCL_EXPORT_REF void tsem_deinit (tsem_t *tsem)
OSCL_EXPORT_REF int tsem_timed_down (tsem_t *tsem, unsigned int milliSecondsDelay)
OSCL_EXPORT_REF void tsem_down (tsem_t *tsem)
OSCL_EXPORT_REF void tsem_up (tsem_t *tsem)
OSCL_EXPORT_REF void tsem_reset (tsem_t *tsem)
OSCL_EXPORT_REF void tsem_wait (tsem_t *tsem)
OSCL_EXPORT_REF void tsem_signal (tsem_t *tsem)

Function Documentation

OSCL_EXPORT_REF void tsem_deinit ( tsem_t tsem)

Destroy the semaphore

Parameters:
tsemthe semaphore to destroy

Definition at line 57 of file tsemaphore.c.

References tsem_t::condition, and tsem_t::mutex.

Referenced by base_constructor_remove_garbage_collected(), base_port_Destructor(), omx_base_component_Destructor(), and omx_clocksrc_component_Destructor().

OSCL_EXPORT_REF int tsem_init ( tsem_t tsem,
unsigned int  val 
)

src/tsemaphore.c

Implements a simple inter-thread semaphore so not to have to deal with IPC creation and the like.

Copyright (C) 2007-2009 STMicroelectronics Copyright (C) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library 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 Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Initializes the semaphore at a given value

Parameters:
tsemthe semaphore to initialize
valthe initial value of the semaphore

Definition at line 39 of file tsemaphore.c.

References tsem_t::condition, tsem_t::mutex, and tsem_t::semval.

Referenced by base_port_Constructor(), main(), omx_base_component_Constructor(), and omx_clocksrc_component_Constructor().

OSCL_EXPORT_REF void tsem_reset ( tsem_t tsem)

Reset the value of the semaphore

Parameters:
tsemthe semaphore to reset

Definition at line 121 of file tsemaphore.c.

References tsem_t::mutex, and tsem_t::semval.

Referenced by base_port_DisablePort(), base_port_FlushProcessingBuffers(), clocksrc_port_FlushProcessingBuffers(), and omx_video_scheduler_component_port_FlushProcessingBuffers().

OSCL_EXPORT_REF void tsem_signal ( tsem_t tsem)

Signal the condition,if waiting

Parameters:
tsemthe semaphore to signal

Definition at line 141 of file tsemaphore.c.

References tsem_t::condition, and tsem_t::mutex.

Referenced by base_port_FlushProcessingBuffers(), clocksrc_port_FlushProcessingBuffers(), omx_base_component_DoStateSet(), and omx_video_scheduler_component_port_FlushProcessingBuffers().

OSCL_EXPORT_REF int tsem_timed_down ( tsem_t tsem,
unsigned int  milliSecondsDelay 
)

Decreases the value of the semaphore. Blocks if the semaphore value is zero. If the timeout is reached the function exits with error ETIMEDOUT

Parameters:
tsemthe semaphore to decrease
timevaluethe value of delay for the timeout

convert timeval to timespec and add delay in milliseconds for the timeout

Definition at line 69 of file tsemaphore.c.

References tsem_t::condition, err, tsem_t::mutex, and tsem_t::semval.

Referenced by main().