double compute_boundary_work(double new_r[MAXSIZE][MAXSIZE], double new_z[MAXSIZE][MAXSIZE], double new_u[MAXSIZE][MAXSIZE], double new_w[MAXSIZE][MAXSIZE], double new_p[MAXSIZE][MAXSIZE], double new_q[MAXSIZE][MAXSIZE], double deltat) { int i,j,k,l; double boundary_work; double w1=0.0; double w2=0.0; double w3=0.0; double w4=0.0; /*work done on north line */ l=1; j=1; for (k=2;k<problem_size;k++){ i=k-1; w1+=work_done(i,j,k,l,new_r,new_z,new_u,new_w,new_p,new_q,deltat); } /*work done on south line */ l=problem_size-1; j=problem_size-1; for (k=2;k<problem_size;k++){ i=k-1; w2+=work_done(i,j,k,l,new_r,new_z,new_u,new_w,new_p,new_q,deltat); } /*work done on east line */ k=problem_size-1; i=problem_size-1; for (l=2;l<problem_size;l++){ j=l+1; w3+=work_done(i,j,k,l,new_r,new_z,new_u,new_w,new_p,new_q,deltat); } /*work done on west line */ k=2; i=2; for (l=2;l<problem_size;l++){ j=l+1; w4+=work_done(i,j,k,l,new_r,new_z,new_u,new_w,new_p,new_q,deltat); } boundary_work = w1 + w2 + w3 + w4; return boundary_work; }
static void *run(void *arg) { int hit = 0; struct grep_opt *opt = arg; while (1) { struct work_item *w = get_work(); if (!w) break; opt->output_priv = w; hit |= grep_source(opt, &w->source); grep_source_clear_data(&w->source); work_done(w); } free_grep_patterns(arg); free(arg); return (void*) (intptr_t) hit; }
static void *run(void *arg) { int hit = 0; struct grep_opt *opt = arg; while (1) { struct work_item *w = get_work(); if (!w) break; if (skip_binary(opt, (const char *)w->identifier)) continue; opt->output_priv = w; if (w->type == WORK_SHA1) { unsigned long sz; void* data = load_sha1(w->identifier, &sz, w->name); if (data) { hit |= grep_buffer(opt, w->name, data, sz); free(data); } } else if (w->type == WORK_FILE) { size_t sz; void* data = load_file(w->identifier, &sz); if (data) { hit |= grep_buffer(opt, w->name, data, sz); free(data); } } else { assert(0); } work_done(w); } free_grep_patterns(arg); free(arg); return (void*) (intptr_t) hit; }
static void *run(void *arg) { int hit = 0; struct grep_opt *opt = arg; while (1) { struct work_item *w = get_work(); if (!w) break; opt->output_priv = w; if (w->source.type == GREP_SOURCE_SUBMODULE) hit |= grep_submodule_launch(opt, &w->source); else hit |= grep_source(opt, &w->source); grep_source_clear_data(&w->source); work_done(w); } free_grep_patterns(arg); free(arg); return (void*) (intptr_t) hit; }