edge_lengths[v1][e]= hypotD(vertices[v1],vertices[v2]);
}
-#include <pthread.h>
-
void compute_vertex_areas(const Vertices vertices, int section) {
int v0,v1,v2, e1,e2;
// int k;
double a[D3], b[D3], axb[D3];
double total_cost= 0;
- if (quitting_last_iteration) {
- char buf[100];
- int n= sprintf(buf,
- "section=%d thr=%#08lx qi=0x%03x START\n",
- section,(unsigned long)pthread_self(), N);
- write(2,buf,n);
- quitting_reported_threads= 1;
- }
-
FOR_EDGE(qi,e,ri, OUTER) {
- if (quitting_last_iteration) {
- char buf[100];
- int n= sprintf(buf,
- "section=%d thr=%#08lx qi=0x%03x,e=%d,ri=0x%03x\n",
- section,(unsigned long)pthread_self(),qi,e,ri);
- write(2,buf,n);
- }
-
pi= EDGE_END2(qi,(e+3)%V6); if (pi<0) continue;
//if (!(qi&XMASK)) fprintf(stderr,"%02x-%02x-%02x (%d)\n",pi,qi,ri,e);
}
static sig_atomic_t quit_requested;
-sig_atomic_t quitting_reported_threads;
-int quitting_last_iteration;
static void sigint_handler(int ignored) {
quit_requested= 1;
for (;;) {
if (quit_requested) {
- fprintf(stderr,"SIGINT caught, quitting soon.\n");
- quitting_last_iteration= 1;
+ fprintf(stderr,"SIGINT caught.\n");
+ break;
}
GA( gsl_multimin_fminimizer_iterate(minimiser) );
if (r==GSL_SUCCESS) break;
assert(r==GSL_CONTINUE);
}
-
- if (quitting_reported_threads)
- exit(1);
}
if (final_file) {
extern char *best_file_tmp;
extern long long evaluations;
extern double stop_epsilon;
-extern int quitting_last_iteration;
-
-#include <signal.h>
-extern sig_atomic_t quitting_reported_threads;
enum printing_instance { pr_cost, pr_size, pr__max };
int printing_check(enum printing_instance, int indent);