OpenMAX Bellagio  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

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

Function Documentation

◆ tsem_deinit()

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().

◆ tsem_down()

◆ tsem_init()

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().

◆ tsem_reset()

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().

◆ tsem_signal()

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().

◆ tsem_timed_down()

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.

◆ tsem_up()

◆ tsem_wait()


Generated for OpenMAX Bellagio rel. 0.9.3 by  doxygen 1.5.1
SourceForge.net Logo