Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Annotation of /branches/vis12/src/compiler/c-target/fragments/init.in
ViewVC logotype

Annotation of /branches/vis12/src/compiler/c-target/fragments/init.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3080 - (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 3035 wrld->stage = POST_NEW;
18 : jhr 2786 wrld->verboseFlg = false;
19 :     wrld->nStrandTys = 1; /* FIXME */
20 :     wrld->strandDesc = &Strand_@STRAND@;
21 : jhr 3035 wrld->runTime = 0.0;
22 : jhr 2780
23 :     #ifndef DIDEROT_NO_GLOBALS
24 : jhr 1806 wrld->globals = NEW(@PREFIX@Globals_t);
25 :     if (wrld->globals == 0) {
26 : jhr 2786 biffMsgNix (wrld->errors);
27 : jhr 1862 FREE (wrld);
28 : jhr 1806 return 0;
29 :     }
30 : jhr 2780 #endif
31 : jhr 1806
32 : jhr 1829 #ifdef DIDEROT_TARGET_PARALLEL
33 : jhr 2786 wrld->sched = NEW(Diderot_Sched_t);
34 : jhr 3040 if ((wrld->sched == 0)
35 :     || Diderot_GetNumCPUs(&(wrld->sched->cpuInfo))) {
36 : jhr 2786 biffMsgNix (wrld->errors);
37 :     FREE(wrld->globals);
38 :     FREE(wrld);
39 :     return 0;
40 : jhr 1829 }
41 : jhr 3040 wrld->sched->numWorkers = wrld->sched->cpuInfo.numHWCores;
42 : jhr 2708 #endif
43 :    
44 :     return wrld;
45 :    
46 :     }
47 :    
48 :     // Initialize the program's world
49 :     //
50 :     bool @PREFIX@Init (@PREFIX@World_t *wrld)
51 :     {
52 : jhr 3035 if (wrld->stage != POST_NEW) {
53 :     biffMsgAdd (wrld->errors, "multiple calls to @PREFIX@Init");
54 :     return true;
55 :     }
56 :    
57 : jhr 2708 #ifdef DIDEROT_TARGET_PARALLEL
58 : jhr 3040 // initialize synchronization structures
59 :     if ((pthread_mutex_init (&(wrld->sched->lock), 0) != 0)
60 : jhr 2708 || (pthread_cond_init (&(wrld->sched->barrier), 0) != 0)
61 :     || (pthread_cond_init (&(wrld->sched->runWait), 0) != 0)) {
62 : jhr 3080 biffMsgAdd (wrld->errors, "unable to initialize scheduler structures");
63 : jhr 2708 return true;
64 :     }
65 : jhr 1917 wrld->sched->numActive = 0;
66 :     #else /* DIDEROT_TARGET_C */
67 :     wrld->numActive = 0;
68 : jhr 1829 #endif
69 :    
70 : jhr 2797 #if !defined(DIDEROT_STANDALONE_EXEC) && !defined(DIDEROT_NO_INPUTS)
71 : jhr 2048 // initialize the defined flags for the input globals
72 :     @PREFIX@InitDefined (wrld);
73 :     #endif
74 : jhr 1718
75 : jhr 3035 wrld->stage = POST_INIT;
76 :    
77 : jhr 2708 return false;
78 : jhr 1727
79 : jhr 1718 }

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0