Доброго дня и ночи! пробовал так static int limit_rate (struct request *req) { // char *fwd_for = forwarded_for (req); u_int cli_spd_limit = 20 * 1024; // get_client_speed_limit (fwd_for); u_int expected = 1000000 * (double)req->r_bytes / (double)cli_spd_limit; printf ("bytes: %lu time: %lu expected %lu\n", req->r_bytes, req->r_time, expected); if (expected > req->r_time) { sleep_usec (expected - req->r_time); } } ... GET_TIME_SLICE(&t1); if ((nread = read (req->server_fd, buf, buf_size)) <= 0) break; GET_TIME_SLICE(&t2); req->r_bytes = nread; req->r_time = t2 - t1; limit_rate (req); out: bytes: 1400 time: 111 expected 68359 sleep_usec, nsec: 67565520 но он как то сильно ошибается, вместо 20кб/с - 17 Подскажите пожалуйста где я натупил. GET_TIME_SLICE - это gettimeofday sleep_usec - nanosleep
Ответ на:
комментарий
от halflife
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от halflife
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Программирование alsa (не могу добиться нормального звука) (2010)
- Форум Программирование, ALSA (2010)
- Форум GLib проблема с потоками GMainLoop (2014)
- Форум Резать скорость Adept'a (2008)
- Форум V4L2: ошибка удаления буфера из очереди: недопустимый аргумент (2023)
- Форум Мы нашли очередную порцию глюков в Linux Kernel (2016)
- Форум чем резать скорость на VLAN (2010)
- Форум Что может резать скорость трафика? (2009)
- Форум как резать пользователям скорость соединения с инетом? (2000)
- Форум резать крышку? (2014)