Sha256: 57d2c3fd98de36dd019dbb09e8394a16f6c3badc077d42ea3b4b8d4b8999ab65

Contents?: true

Size: 1.04 KB

Versions: 2

Compression:

Stored size: 1.04 KB

Contents

/*
  Copyright 1999 Kazuhiro HIWADA
  Copyright 2006 Suraj N. Kurapati
  See the file named LICENSE for details.
*/

#include "relay.h"
#include "main.h"
#include <pthread.h>


pthread_t relay__rubyThread;
pthread_mutex_t relay__rubyLock;
pthread_mutex_t relay__verilogLock;

// Body of the ruby thread.
void* relay_ruby_thread(void* dummy) {
  main_init();
  return NULL;
}

void relay_init() {
  pthread_mutex_init(&relay__rubyLock, NULL);
  pthread_mutex_lock(&relay__rubyLock);
  pthread_mutex_init(&relay__verilogLock, NULL);
  pthread_mutex_lock(&relay__verilogLock);

  // start the ruby thread
    pthread_create(&relay__rubyThread, NULL, relay_ruby_thread, NULL);

    // XXX: freezee verilog because RubyVpi.init_bench will call relay_verilog
    // (which assumes that verilog is frozen)
    pthread_mutex_lock(&relay__verilogLock);
}

void relay_ruby() {
  pthread_mutex_unlock(&relay__rubyLock);
  pthread_mutex_lock(&relay__verilogLock);
}

void relay_verilog() {
  pthread_mutex_unlock(&relay__verilogLock);
  pthread_mutex_lock(&relay__rubyLock);
}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby-vpi-16.0.0 ext/relay.c
ruby-vpi-16.0.1 ext/relay.c