2 * Copyright (C) 2008-2009 Nokia Corporation.
4 * Author: Felipe Contreras <felipe.contreras@nokia.com>
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation
9 * version 2.1 of the License.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
31 sem = g_new (GSem, 1);
32 sem->condition = g_cond_new ();
33 sem->mutex = g_mutex_new ();
40 g_sem_free (GSem * sem)
42 g_cond_free (sem->condition);
43 g_mutex_free (sem->mutex);
48 g_sem_down (GSem * sem)
50 g_mutex_lock (sem->mutex);
52 while (sem->counter == 0) {
53 g_cond_wait (sem->condition, sem->mutex);
58 g_mutex_unlock (sem->mutex);
64 g_mutex_lock (sem->mutex);
67 g_cond_signal (sem->condition);
69 g_mutex_unlock (sem->mutex);