int nsleep(const struct timespec *req, struct timespec *rem) { struct timespec temp_rem; if (nanosleep(req, rem) == -1) { if (errno == EINTR) { nsleep(rem, &temp_rem); } else { return errno; } } else { return 0; } }
int main() { pthread_t t[3]; msg_buf1[0] = msg_buf1[1] = 0; msg_buf2[0] = msg_buf2[1] = 0; pthread_create( &t[0], NULL, thread1, NULL); pthread_create( &t[1], NULL, thread2, NULL); pthread_create( &t[2], NULL, thread3, NULL); while (1) { nsleep(1, 0); printf("Hello from main\n"); } return 0; }
int throttle_calibrate (int rate) { uint32_t i, usec, calib, laps = 50000; struct timeval tv1, tv2; gettimeofday (&tv1, NULL); for (i = 0; i < laps; i++) { nsleep (1); } gettimeofday (&tv2, NULL); usec = (tv2.tv_sec - tv1.tv_sec) * 100000.0 + (tv2.tv_usec - tv1.tv_usec); calib = (int)((1000000.0 / rate) * (50000.0 / usec)); DEBUG ("start = %u; stop = %u; ", (uint32_t)tv1.tv_usec, (uint32_t)tv2.tv_usec); DEBUG ("benchmark: %d laps in %u usecs => ", laps, usec); DEBUG ("calib = %u\n", calib); return calib; }
// Cancellable send loop, initiated which must be initiated with an IO-channel static ssize_t slac_iosendloop(void *vargs, atomic_int *cancel) { int err; bool infloop = true; int i; iosendloop_args_t *args = (iosendloop_args_t*)vargs; if (args->max_tries > 0) { i = 0; infloop = false; } while (atomic_load(cancel) == 0) { err = ethsend(args->ethconn, args->ethframe, args->framelen); if (err != 0) { return -1; } if (!infloop && i++ >= args->max_tries) { break; } nsleep(args->senddelay_ns); } return 0; }
void usleep(unsigned long microseconds) { /* TODO: proper implementation */ nsleep(microseconds * 1000); }
void ngraph_sleep(int t) { nsleep(t); }
/* * msleep() - Sleep for msec miliseconds. * * @msec: Number of miliseconds to sleep. */ void msleep(long msec) { nsleep(msec * 1000000LL); }
int main() { //Declaracion de variables: uint8_t j, i, l, k, va, vs; uint32_t rc_nota, rc_vol; uint16_t boton; uint8_t note; uint32_t t2; uint16_t b1, b2, b3, b4; uint8_t c1, c2, c3, c4, c5, valor; //Inicializacion de perifericos gpio_init(0x01); //9BITS 6 ENTRADAS(BOTONES) 3 SALIDAS(2 LEDS Y PWM) PIN1:PWM - PIN2:MODO - PIN3: LEDBLANCO set_digpot(0x64); //0 Ohms va=0; //Volumen actual for (l = 1; l < 15; l++) { //c1 = 6+(l*10); //Escala a una octava (7) c1 = 4+(l*6); //Escala a dos octavas (14) msleep(500); if (c1 > 2 && c1 < 8){b1 = 180; b3 = 0; c3 = 118; c2 = 20987;} //selección de la nota dependiendo la distancia else if (c1 > 8 && c1 < 14){b1 = 162; b3 = 18; c3 = 130; c2 = 20987;} else if (c1 > 14 && c1 < 20){b1 = 144; b3 = 36; c3 = 146; c2 = 20741;} else if (c1 > 20 && c1 < 26){b1 = 138; b3 = 42; c3 = 150; c2 = 20741;} else if (c1 > 26 && c1 < 32){b1 = 124; b3 = 56; c3 = 166; c2 = 20741;} else if (c1 > 32 && c1 < 38){b1 = 112; b3 = 68; c3 = 181; c2 = 20495;} else if (c1 > 38 && c1 < 44){b1 = 100; b3 = 80; c3 = 202; c2 = 20495;} else if (c1 > 44 && c1 < 50){b1 = 90; b3 = 90; c3 = 236; c2 = 20987;} else if (c1 > 50 && c1 < 56){b1 = 81; b3 = 99; c3 = 260; c2 = 20987;} else if (c1 > 56 && c1 < 62){b1 = 72; b3 = 108; c3 = 293; c2 = 20741;} else if (c1 > 62 && c1 < 68){b1 = 69; b3 = 111; c3 = 301; c2 = 20741;} else if (c1 > 68 && c1 < 74){b1 = 62; b3 = 118; c3 = 332; c2 = 20741;} else if (c1 > 74 && c1 < 80){b1 = 56; b3 = 124; c3 = 362; c2 = 20495;} else if (c1 > 80 && c1 < 86){b1 = 50; b3 = 130; c3 = 405; c2 = 20495;} b4 = 21 + b3; for (i=1; i<b4;i++) { b2 = b1+76; for (j=75; j<b2; j++) //recorre cada una de las muestras (b1 tercera octava) { c4 = j*c3; c5 = c2-c4; set_pin(1,1); //se asigna el ciclo util por tiempo nsleep(c4); set_pin(0,1); nsleep(c5); } } } }
int main(int argc, char **argv) { struct args args = { /* Defaults. */ .stack = "ip", .add_rules = 0, .ebtables = "/sbin/ebtables", .sleep = 10, .parents = 0, .daemon = 0, /* This parameter expects something like * "experiment/stack/column/run". */ .file = NULL, .count = 0, .entries = 0, .ifs = NULL, }; int i, sk, rcount; FILE *f; double start; struct ebt_counter *cnt; /* Read parameters. */ argp_parse(&argp, argc, argv, 0, NULL, &args); /* Install ebtables(8) rules. */ if (args.add_rules) { for (i = 0; i < args.count; i++) ebt_add_rule(args.ebtables, args.stack, args.ifs[i]); } /* Create parent paths of @args.file. */ if (args.file && args.parents) assert(!close(mkdir_parents(args.file))); /* Test that only the expected ebtables(8) rules are in place. * This is important to avoid silently wrong measurements. */ sk = ebt_socket(); if (sk < 0) err(1, "Can't get a socket"); rcount = ebt_rule_count(sk, args.stack); if (rcount != args.count) errx(1, "There is a mismatch between the number of ebtables(8) rules installed (= %i) and the number of monitored interfaces (= %i)", rcount, args.count); if (!rcount) errx(1, "There is no ebtables(8) rules to measure"); /* Create sampling file. */ if (args.file) { f = fopen(args.file, "w"); if (!f) err(1, "Can't open file `%s'", args.file); ebt_add_header_to_file(sk, args.stack, f); } else { f = stdout; } /* Daemonize. */ if (args.daemon && daemon(1, 1)) err(1, "Can't daemonize"); start = now(); if (args.file) { ebt_write_sample_to_file(sk, args.stack, f); if (fflush(f)) err(1, "Can't save content of file `%s'", args.file); } else { cnt = ebt_create_cnt(sk, args.stack); assert(cnt); } while (1) { double diff = now() - start; if (diff < args.sleep) nsleep(args.sleep - diff); else warnx("Option --sleep=%i is too little; not enough time to estimate rates. Consider increasing the period", args.sleep); start = now(); if (args.file) ebt_write_sample_to_file(sk, args.stack, f); else ebt_write_rates_to_file(sk, args.stack, f, args.sleep, cnt); if (fflush(f)) err(1, "Can't save content of file `%s'", args.file ? args.file : "STDOUT"); } ebt_free_cnt(cnt); if (args.file) assert(!fclose(f)); ebt_close(sk); end_args(&args); return 0; }
int TCPApplication::usleep(long microsleep) { return nsleep(1000L*microsleep); }
void msleep(uint32_t n) { nsleep(1000000 * (uint64_t)n); }
int main() { //Declaracion de variables: uint8_t j, i, l, k, va, v, vs, vol; uint32_t rc_nota, rc_vol; uint16_t boton; uint8_t note; uint32_t t2, c1; uint16_t b1, b2, b3, b4; uint8_t c2, c3, c4, c5, c6, valor; //Inicializacion de perifericos gpio_init(0x01); //9BITS 6 ENTRADAS(BOTONES) 3 SALIDAS(2 LEDS Y PWM) PIN1:PWM - PIN2:MODO - PIN3: LEDBLANCO v=1; //Volumen actual vol=0; for(;;) { rc_vol=read_count1(); //Obtiene el valor de tiempo de lectura del sensor de volumen vs=vsig_pot(rc_vol, vol); //Calcula el valor siguiente del potenciometro volumen(va, vs); //Asigna el potenciometro al valor siguiente va=vs; //Actualiza el valor presente c1 = read_count0(); c6 = sel_nota(c1,v); if (c6 == 1){b1 = 180; b3 = 0; c3 = 118; c2 = 20987; for (i=1; i<10;i++) { b2 = b1+76; for (j=75; j<b2; j++) { c4 = j*c3; c5 = c2-c4; set_pin(1,1); nsleep(c4); set_pin(0,1); nsleep(c5); } } } else if (c6 == 2){b1 = 162; b3 = 18; c3 = 130; c2 = 20987; for (i=1; i<10;i++) { b2 = b1+76; for (j=75; j<b2; j++) { c4 = j*c3; c5 = c2-c4; set_pin(1,1); nsleep(c4); set_pin(0,1); nsleep(c5); } } } else if (c6 == 3){b1 = 144; b3 = 36; c3 = 146; c2 = 20741; for (i=1; i<10;i++) { b2 = b1+76; for (j=75; j<b2; j++) { c4 = j*c3; c5 = c2-c4; set_pin(1,1); nsleep(c4); set_pin(0,1); nsleep(c5); } } } else if (c6 == 4){b1 = 138; b3 = 42; c3 = 150; c2 = 20741; for (i=1; i<10;i++) { b2 = b1+76; for (j=75; j<b2; j++) { c4 = j*c3; c5 = c2-c4; set_pin(1,1); nsleep(c4); set_pin(0,1); nsleep(c5); } } } else if (c6 == 5){b1 = 124; b3 = 56; c3 = 166; c2 = 20741; for (i=1; i<10;i++) { b2 = b1+76; for (j=75; j<b2; j++) { c4 = j*c3; c5 = c2-c4; set_pin(1,1); nsleep(c4); set_pin(0,1); nsleep(c5); } } } else if (c6 == 6){b1 = 112; b3 = 68; c3 = 181; c2 = 20495; for (i=1; i<10;i++) { b2 = b1+76; for (j=75; j<b2; j++) { c4 = j*c3; c5 = c2-c4; set_pin(1,1); nsleep(c4); set_pin(0,1); nsleep(c5); } } } else if (c6 == 7){b1 = 100; b3 = 80; c3 = 202; c2 = 20495; for (i=1; i<10;i++) { b2 = b1+76; for (j=75; j<b2; j++) { c4 = j*c3; c5 = c2-c4; set_pin(1,1); nsleep(c4); set_pin(0,1); nsleep(c5); } } } else if(c6==0){msleep(100);} } }