comparison nanos-vss.c @ 41:37bb39da5ff1

static3d working, still trouble with child tasks
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Wed, 05 Jun 2013 14:40:40 +0200
parents df464a215387
children bb6fbcbce14d
comparison
equal deleted inserted replaced
0:ce7b08645625 1:b4f5aa34af29
14 nanos_unset_lock //critical end 14 nanos_unset_lock //critical end
15 15
16 nanos_omp_set_interface 16 nanos_omp_set_interface
17 nanos_smp_factory*/ 17 nanos_smp_factory*/
18 18
19 int tasks_created = 0;
20
19 nanos_wd_t nanos_current_wd(void) { 21 nanos_wd_t nanos_current_wd(void) {
20 return (nanos_wd_t) ((VSsSemData*) currVP->semanticData)->taskStub; 22 return (nanos_wd_t) ((VSsSemData*) currVP->semanticData)->taskStub;
21 } 23 }
22 24
23 nanos_err_t nanos_create_wd_compact(nanos_wd_t *wd, nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props, 25 nanos_err_t nanos_create_wd_compact(nanos_wd_t *wd, nanos_const_wd_definition_t *const_data, nanos_wd_dyn_props_t *dyn_props,
24 size_t data_size, void ** data, nanos_wg_t wg, nanos_copy_data_t **copies) { 26 size_t data_size, void ** data, nanos_wg_t wg, nanos_copy_data_t **copies) {
27
25 VSsTaskStub* ts = (VSsTaskStub*) malloc(sizeof (VSsTaskStub)); 28 VSsTaskStub* ts = (VSsTaskStub*) malloc(sizeof (VSsTaskStub));
26 void* alloc_data = malloc(data_size); 29 void* alloc_data = malloc(data_size);
27 *data = alloc_data; 30 *data = alloc_data;
28 ts->args = alloc_data; 31 ts->args = alloc_data;
29 32
71 reqData.taskType = taskType; 74 reqData.taskType = taskType;
72 reqData.args = ts->args; 75 reqData.args = ts->args;
73 reqData.deps = depsAddrs; 76 reqData.deps = depsAddrs;
74 reqData.callingSlv = currVP; 77 reqData.callingSlv = currVP;
75 78
76 reqData.taskID = NULL; 79 int32* taskID;
80 taskID = VSs__create_taskID_of_size(1);
81 taskID[1] = tasks_created++;
82
83 reqData.taskID = taskID;
77 84
78 free(ts); 85 free(ts);
79 86
80 VMS_WL__send_sem_request(&reqData, currVP); 87 VMS_WL__send_sem_request(&reqData, currVP);
81 88
126 reqData.taskType = taskType; 133 reqData.taskType = taskType;
127 reqData.args = data; 134 reqData.args = data;
128 reqData.deps = depsAddrs; 135 reqData.deps = depsAddrs;
129 reqData.callingSlv = currVP; 136 reqData.callingSlv = currVP;
130 137
131 reqData.taskID = NULL; 138 int32* taskID;
139 taskID = VSs__create_taskID_of_size(1);
140 taskID[1] = tasks_created++;
141
142 reqData.taskID = taskID;
132 143
133 VMS_WL__send_sem_request(&reqData, currVP); 144 VMS_WL__send_sem_request(&reqData, currVP);
134 145
135 return NANOS_OK; 146 return NANOS_OK;
136 } 147 }