SCM Repository
Annotation of /branches/vis12/src/compiler/c-target/fragments/init.in
Parent Directory
|
Revision Log
Revision 2797 - (view) (download)
1 : | jhr | 2708 | // Allocate the program's world |
2 : | // | ||
3 : | @PREFIX@World_t *@PREFIX@New () | ||
4 : | jhr | 1718 | { |
5 : | @PREFIX@World_t *wrld = NEW(@PREFIX@World_t); | ||
6 : | if (wrld == 0) | ||
7 : | jhr | 2786 | return 0; |
8 : | jhr | 1718 | |
9 : | jhr | 2786 | wrld->name = ProgramName; |
10 : | wrld->errors = biffMsgNew("DIDEROT"); | ||
11 : | jhr | 1862 | |
12 : | if (wrld->errors == 0) { | ||
13 : | FREE (wrld); | ||
14 : | jhr | 2786 | return 0; |
15 : | jhr | 1862 | } |
16 : | |||
17 : | jhr | 2786 | wrld->verboseFlg = false; |
18 : | wrld->nStrandTys = 1; /* FIXME */ | ||
19 : | wrld->strandDesc = &Strand_@STRAND@; | ||
20 : | jhr | 2780 | |
21 : | #ifndef DIDEROT_NO_GLOBALS | ||
22 : | jhr | 1806 | wrld->globals = NEW(@PREFIX@Globals_t); |
23 : | if (wrld->globals == 0) { | ||
24 : | jhr | 2786 | biffMsgNix (wrld->errors); |
25 : | jhr | 1862 | FREE (wrld); |
26 : | jhr | 1806 | return 0; |
27 : | } | ||
28 : | jhr | 2780 | #endif |
29 : | jhr | 1806 | |
30 : | jhr | 1829 | #ifdef DIDEROT_TARGET_PARALLEL |
31 : | jhr | 2786 | wrld->sched = NEW(Diderot_Sched_t); |
32 : | jhr | 2708 | if (wrld->sched == 0) { |
33 : | jhr | 2786 | biffMsgNix (wrld->errors); |
34 : | FREE(wrld->globals); | ||
35 : | FREE(wrld); | ||
36 : | return 0; | ||
37 : | jhr | 1829 | } |
38 : | jhr | 2708 | #endif |
39 : | |||
40 : | return wrld; | ||
41 : | |||
42 : | } | ||
43 : | |||
44 : | // Initialize the program's world | ||
45 : | // | ||
46 : | bool @PREFIX@Init (@PREFIX@World_t *wrld) | ||
47 : | { | ||
48 : | #ifdef DIDEROT_TARGET_PARALLEL | ||
49 : | if (Diderot_GetNumCPUs(&(wrld->sched->cpuInfo)) | ||
50 : | || (pthread_mutex_init (&(wrld->sched->lock), 0) != 0) | ||
51 : | || (pthread_cond_init (&(wrld->sched->barrier), 0) != 0) | ||
52 : | || (pthread_cond_init (&(wrld->sched->runWait), 0) != 0)) { | ||
53 : | jhr | 2786 | biffMsgAdd (wrld->errors, "unable to initialize scheduler structures"); |
54 : | jhr | 2708 | return true; |
55 : | } | ||
56 : | jhr | 1831 | wrld->sched->numWorkers = wrld->sched->cpuInfo.numHWCores; |
57 : | jhr | 1917 | wrld->sched->numActive = 0; |
58 : | #else /* DIDEROT_TARGET_C */ | ||
59 : | wrld->numActive = 0; | ||
60 : | jhr | 1829 | #endif |
61 : | |||
62 : | jhr | 2797 | #if !defined(DIDEROT_STANDALONE_EXEC) && !defined(DIDEROT_NO_INPUTS) |
63 : | jhr | 2048 | // initialize the defined flags for the input globals |
64 : | @PREFIX@InitDefined (wrld); | ||
65 : | #endif | ||
66 : | jhr | 1718 | |
67 : | jhr | 2708 | return false; |
68 : | jhr | 1727 | |
69 : | jhr | 1718 | } |
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |