#define USE_STDIO_H
#include "run-time.h"
#include <stdio.h>
#include <stdlib.h>
extern OBJECT KPfalseVKi;
extern OBJECT KPtrueVKi;
#define ignore(x) x
/* THREADS SUPPORT */
D one_true_thread = DFALSE;
#define THREAD_SUCCESS I(0)
void threads_get_stuffed () {
fprintf(stderr, "This implementation does not support real threads\n");
primitive_break();
}
D primitive_detach_thread(D t) {
ignore(t);
return(THREAD_SUCCESS);
}
D primitive_release_simple_lock(D l) {
ignore(l);
return(THREAD_SUCCESS);
}
D primitive_release_semaphore(D s) {
ignore(s);
return(THREAD_SUCCESS);
}
D primitive_owned_recursive_lock(D l) {
ignore(l);
return(DTRUE);
}
D primitive_destroy_simple_lock(D l) {
ignore(l);
return(THREAD_SUCCESS);
}
D primitive_wait_for_semaphore_timed(D s, D ms) {
ignore(s); ignore(ms);
return(THREAD_SUCCESS);
}
D primitive_wait_for_semaphore(D s) {
ignore(s);
return(THREAD_SUCCESS);
}
D primitive_wait_for_simple_lock_timed(D l, D ms) {
ignore(l); ignore(ms);
return(THREAD_SUCCESS);
}
D primitive_wait_for_simple_lock(D l) {
ignore(l);
return(THREAD_SUCCESS);
}
D primitive_make_recursive_lock(D l, D n) {
ignore(l); ignore(n);
return(THREAD_SUCCESS);
}
D primitive_release_recursive_lock(D l) {
ignore(l);
return(THREAD_SUCCESS);
}
D primitive_make_semaphore(D l, D n, D i, D m) {
ignore(l); ignore(n); ignore(i); ignore(m);
return(THREAD_SUCCESS);
}
D primitive_destroy_recursive_lock(D l) {
ignore(l);
return(THREAD_SUCCESS);
}
D primitive_owned_simple_lock(D l) {
ignore(l);
return(DTRUE);
}
D primitive_destroy_semaphore(D l) {
ignore(l);
return(THREAD_SUCCESS);
}
D primitive_wait_for_recursive_lock_timed(D l, D ms) {
ignore(l); ignore(ms);
return(THREAD_SUCCESS);
}
D primitive_wait_for_recursive_lock(D l) {
ignore(l);
return(THREAD_SUCCESS);
}
D primitive_thread_join_multiple(D v) {
ignore(v);
threads_get_stuffed();
return(THREAD_SUCCESS);
}
D primitive_thread_join_single(D t) {
ignore(t);
threads_get_stuffed();
return(THREAD_SUCCESS);
}
D primitive_initialize_current_thread(D t, DBOOL s) {
ignore(s);
one_true_thread = t;
return(THREAD_SUCCESS);
}
D primitive_initialize_special_thread(D t) {
one_true_thread = t;
return(THREAD_SUCCESS);
}
D primitive_current_thread() {
return(THREAD_SUCCESS);
}
D primitive_make_thread(D t, D n, D p, D f, DBOOL s) {
ignore(t); ignore(n); ignore(p); ignore(f); ignore(s);
/* threads_get_stuffed(); */
return(THREAD_SUCCESS); /* Keeps some compilers happy -- Won't actually get here */
}
D primitive_destroy_thread(D t) {
ignore(t);
return(THREAD_SUCCESS);
}
D primitive_destroy_notification(D n) {
ignore(n);
return(THREAD_SUCCESS);
}
D primitive_release_all_notification(D n, D l) {
ignore(n); ignore(l);
return(THREAD_SUCCESS);
}
D primitive_make_notification(D l, D n) {
ignore(l); ignore(n);
return(THREAD_SUCCESS);
}
D primitive_wait_for_notification_timed(D n, D l, D ms) {
ignore(n); ignore(l); ignore(ms);
return(THREAD_SUCCESS);
}
D primitive_wait_for_notification(D n, D l) {
ignore(n); ignore(l);
return(THREAD_SUCCESS);
}
D primitive_release_notification(D n, D l) {
ignore(n); ignore(l);
return(THREAD_SUCCESS);
}
void primitive_thread_yield() {
}
void primitive_sleep(D ms) {
ignore(ms);
}
D primitive_make_simple_lock(D l, D n) {
ignore(l); ignore(n);
return(THREAD_SUCCESS);
}
D primitive_allocate_thread_variable(D i) {
ignore(i);
return(DFALSE);
}
D primitive_read_thread_variable(D h) {
ignore(h);
return(DFALSE);
}
D primitive_write_thread_variable(D h, D nv) {
ignore(h); ignore(nv);
return(nv);
}
syntax highlighted by Code2HTML, v. 0.9.1