Revision 8d5da6a0040f0cc55af5fd99588383f5582ff98f authored by Jameson Nash on 03 May 2017, 22:11:39 UTC, committed by Jameson Nash on 03 May 2017, 22:11:39 UTC
unlike codegen, only bitstypes (!isptr) fields are permitted in the union and the offset count starts from 0 instead of 1 but otherwise the tindex counter is compatible
1 parent 5f296f3
threadgroup.h
// This file is a part of Julia. License is MIT: https://julialang.org/license
#ifndef THREADGROUP_H
#define THREADGROUP_H
#include <stdint.h>
#include "uv.h"
// for the barrier
typedef struct {
int sense;
} ti_thread_sense_t;
// thread group
typedef struct {
int16_t *tid_map, num_threads, added_threads;
uint8_t num_sockets, num_cores, num_threads_per_core;
// fork/join/barrier
uint8_t group_sense; // Written only by master thread
ti_thread_sense_t **thread_sense;
void *envelope;
// to let threads sleep
uv_mutex_t alarm_lock;
uv_cond_t alarm;
uint64_t sleep_threshold;
} ti_threadgroup_t;
int ti_threadgroup_create(uint8_t num_sockets, uint8_t num_cores,
uint8_t num_threads_per_core,
ti_threadgroup_t **newtg);
int ti_threadgroup_addthread(ti_threadgroup_t *tg, int16_t ext_tid,
int16_t *tgtid);
int ti_threadgroup_initthread(ti_threadgroup_t *tg, int16_t ext_tid);
int ti_threadgroup_member(ti_threadgroup_t *tg, int16_t ext_tid,
int16_t *tgtid);
int ti_threadgroup_size(ti_threadgroup_t *tg, int16_t *tgsize);
int ti_threadgroup_fork(ti_threadgroup_t *tg, int16_t ext_tid,
void **bcast_val, int init);
int ti_threadgroup_join(ti_threadgroup_t *tg, int16_t ext_tid);
int ti_threadgroup_destroy(ti_threadgroup_t *tg);
#endif /* THREADGROUP_H */
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...