Sha256: fcbb86ad4a2aeef7edc4af5ad6ac11b63f213ee5d8ba7324d1aaa9b7c68a19ce

Contents?: true

Size: 1.55 KB

Versions: 13

Compression:

Stored size: 1.55 KB

Contents

/*
 * Copyright (c) 2009 Wayne Meissner. All rights reserved.
 * 
 * All rights reserved.
 *
 * This file is part of ruby-ffi.
 *
 * This code is free software: you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License version 3 only, as
 * published by the Free Software Foundation.
 *
 * This code 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
 * version 3 for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * version 3 along with this work.  If not, see <http://www.gnu.org/licenses/>.
 */

#ifdef _WIN32
#include <windows.h>
#define sleep(x) Sleep(x)
#endif

#ifndef _WIN32
#include <unistd.h>
#include <pthread.h>
#endif

int testAdd(int a, int b)
{
    return a + b;
};

int testFunctionAdd(int a, int b, int (*f)(int, int))
{
    return f(a, b);
};

void testBlocking(int seconds) {
    sleep(seconds);
};

struct async_data {
    void (*fn)(int);
    int value;
};

static void* asyncThreadCall(void *data)
{
    struct async_data* d = (struct async_data *) data;
    if (d != NULL && d->fn != NULL) {
        (*d->fn)(d->value);
    }

    return NULL;
}

void testAsyncCallback(void (*fn)(int), int value)
{
#ifndef _WIN32
    pthread_t t;
    struct async_data d;
    d.fn = fn;
    d.value = value;
    pthread_create(&t, NULL, asyncThreadCall, &d);
    pthread_join(t, NULL);
#else
    (*fn)(value);
#endif
} 

Version data entries

13 entries across 13 versions & 2 rubygems

Version Path
sunrise-cms-0.5.0.rc1 vendor/bundle/ruby/1.9.1/gems/ffi-1.2.0/libtest/FunctionTest.c
ffi-1.2.1-x86-mingw32 libtest/FunctionTest.c
ffi-1.2.1 libtest/FunctionTest.c
ffi-1.2.0-x86-mingw32 libtest/FunctionTest.c
ffi-1.2.0 libtest/FunctionTest.c
ffi-1.2.0.pre6-x86-mingw32 libtest/FunctionTest.c
ffi-1.2.0.pre6 libtest/FunctionTest.c
ffi-1.2.0.pre5 libtest/FunctionTest.c
ffi-1.2.0.pre4 libtest/FunctionTest.c
ffi-1.2.0.pre3-x86-mingw32 libtest/FunctionTest.c
ffi-1.2.0.pre3 libtest/FunctionTest.c
ffi-1.2.0.pre2-x86-mingw32 libtest/FunctionTest.c
ffi-1.2.0.pre2 libtest/FunctionTest.c