From ce89e26e558674276c29d3598a02a56bd8e95d6c Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Tue, 9 Jun 2015 03:45:40 +0900 Subject: [PATCH] Remove clock_gettime detection and its replacements --- configure.ac | 10 ------- src/Makefile.am | 8 ------ src/a2time.h | 16 ++--------- src/clock_gettime_mingw.cc | 58 -------------------------------------- src/clock_gettime_mingw.h | 41 --------------------------- src/clock_gettime_osx.cc | 58 -------------------------------------- src/clock_gettime_osx.h | 41 --------------------------- src/timespec.h | 2 -- 8 files changed, 3 insertions(+), 231 deletions(-) delete mode 100644 src/clock_gettime_mingw.cc delete mode 100644 src/clock_gettime_mingw.h delete mode 100644 src/clock_gettime_osx.cc delete mode 100644 src/clock_gettime_osx.h diff --git a/configure.ac b/configure.ac index 01698e17..a68ad09b 100644 --- a/configure.ac +++ b/configure.ac @@ -879,14 +879,6 @@ AC_CHECK_FUNCS([timegm], AC_CHECK_FUNCS([daemon], [have_daemon=yes]) AM_CONDITIONAL([HAVE_DAEMON], [test "x$have_daemon" = "xyes"]) -AC_CHECK_FUNCS([clock_gettime], [have_clock_gettime=yes]) - -if test "x$have_clock_gettime" != "xyes"; then - AC_CHECK_FUNCS([mach_absolute_time], [have_mach_absolute_time=yes]) -fi -AM_CONDITIONAL([HAVE_MACH_ABSOLUTE_TIME], - [test "x$have_mach_absolute_time" = "xyes"]) - AC_CHECK_FUNCS([poll], [have_poll=yes]) AM_CONDITIONAL([HAVE_POLL], [test "x$have_poll" = "xyes"]) @@ -897,11 +889,9 @@ case "$host" in AM_CONDITIONAL([HAVE_GETADDRINFO], true) dnl defined in ws2tcpip.h, but missing in C:\mingw\lib\libws2_32.a AM_CONDITIONAL([HAVE_GAI_STRERROR], false) - AM_CONDITIONAL([HAVE_TIMEGETTIME], [test "x$have_clock_gettime" != "xyes"]) ;; *) AM_CONDITIONAL([MINGW_BUILD], false) - AM_CONDITIONAL([HAVE_TIMEGETTIME], false) ;; esac diff --git a/src/Makefile.am b/src/Makefile.am index bfa99857..10b1b914 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -675,14 +675,6 @@ if !HAVE_DAEMON SRCS += daemon.cc daemon.h endif # !HAVE_DAEMON -if HAVE_TIMEGETTIME -SRCS += clock_gettime_mingw.cc clock_gettime_mingw.h -endif # HAVE_TIMEGETTIME - -if HAVE_MACH_ABSOLUTE_TIME -SRCS += clock_gettime_osx.cc clock_gettime_osx.h -endif # HAVE_MACH_ABSOLUTE_TIME - if HAVE_POLL SRCS += PollEventPoll.cc PollEventPoll.h endif # HAVE_POLL diff --git a/src/a2time.h b/src/a2time.h index a561f4e7..f995d2a4 100644 --- a/src/a2time.h +++ b/src/a2time.h @@ -63,19 +63,9 @@ # define suseconds_t uint64_t #endif -#ifndef CLOCK_MONOTONIC -# define CLOCK_MONOTONIC 0 -#endif // !CLOCK_MONOTONIC -#ifndef HAVE_CLOCK_GETTIME -# ifdef __MINGW32__ -# include "clock_gettime_mingw.h" -# elif HAVE_MACH_ABSOLUTE_TIME -# include "clock_gettime_osx.h" -# else -# include "timespec.h" -# define clock_gettime(ID, TP) (-1) -# endif // !__MINGW32__ -#endif // !HAVE_CLOCK_GETTIME +#ifndef HAVE_A2_STRUCT_TIMESPEC +# include "timespec.h" +#endif // !HAVE_A2_STRUCT_TIMESPEC // Rounding error in millis constexpr auto A2_DELTA_MILLIS = std::chrono::milliseconds(10); diff --git a/src/clock_gettime_mingw.cc b/src/clock_gettime_mingw.cc deleted file mode 100644 index 5d9a40a5..00000000 --- a/src/clock_gettime_mingw.cc +++ /dev/null @@ -1,58 +0,0 @@ -/* - * aria2 - The high speed download utility - * - * Copyright (C) 2010 Tatsuhiro Tsujikawa - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * In addition, as a special exception, the copyright holders give - * permission to link the code of portions of this program with the - * OpenSSL library under certain conditions as described in each - * individual source file, and distribute linked combinations - * including the two. - * You must obey the GNU General Public License in all respects - * for all of the code used other than OpenSSL. If you modify - * file(s) with this exception, you may extend this exception to your - * version of the file(s), but you are not obligated to do so. If you - * do not wish to do so, delete this exception statement from your - * version. If you delete this exception statement from all source - * files in the program, then also delete it here. - */ -/* copyright --> */ -#include "clock_gettime_mingw.h" - -#include -#include - -int clock_gettime(int dummyid, struct timespec* tp) -{ - timeBeginPeriod(1); - static DWORD lasttime = timeGetTime(); - timeEndPeriod(1); - static struct timespec monotime = {2678400, 0}; // 1month offset(24*3600*31) - timeBeginPeriod(1); - DWORD now = timeGetTime(); - timeEndPeriod(1); - DWORD elapsed = now-lasttime; - monotime.tv_sec += elapsed/1000; - monotime.tv_nsec += elapsed%1000*1000000; - if(monotime.tv_nsec >= 1000000000) { - monotime.tv_sec += monotime.tv_nsec/1000000000; - monotime.tv_nsec %= 1000000000; - } - lasttime = now; - *tp = monotime; - return 0; -} diff --git a/src/clock_gettime_mingw.h b/src/clock_gettime_mingw.h deleted file mode 100644 index 24637674..00000000 --- a/src/clock_gettime_mingw.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * aria2 - The high speed download utility - * - * Copyright (C) 2010 Tatsuhiro Tsujikawa - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * In addition, as a special exception, the copyright holders give - * permission to link the code of portions of this program with the - * OpenSSL library under certain conditions as described in each - * individual source file, and distribute linked combinations - * including the two. - * You must obey the GNU General Public License in all respects - * for all of the code used other than OpenSSL. If you modify - * file(s) with this exception, you may extend this exception to your - * version of the file(s), but you are not obligated to do so. If you - * do not wish to do so, delete this exception statement from your - * version. If you delete this exception statement from all source - * files in the program, then also delete it here. - */ -/* copyright --> */ -#ifndef D_CLOCK_GETTIME_MINGW_H -#define D_CLOCK_GETTIME_MINGW_H - -#include "timespec.h" - -int clock_gettime(int dummyid, struct timespec* tp); - -#endif // D_CLOCK_GETTIME_MINGW_H diff --git a/src/clock_gettime_osx.cc b/src/clock_gettime_osx.cc deleted file mode 100644 index a3d071d5..00000000 --- a/src/clock_gettime_osx.cc +++ /dev/null @@ -1,58 +0,0 @@ -/* - * aria2 - The high speed download utility - * - * Copyright (C) 2010 Tatsuhiro Tsujikawa - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * In addition, as a special exception, the copyright holders give - * permission to link the code of portions of this program with the - * OpenSSL library under certain conditions as described in each - * individual source file, and distribute linked combinations - * including the two. - * You must obey the GNU General Public License in all respects - * for all of the code used other than OpenSSL. If you modify - * file(s) with this exception, you may extend this exception to your - * version of the file(s), but you are not obligated to do so. If you - * do not wish to do so, delete this exception statement from your - * version. If you delete this exception statement from all source - * files in the program, then also delete it here. - */ -/* copyright --> */ -#include "clock_gettime_osx.h" - -#include -#include - -int clock_gettime(int dummyid, struct timespec* tp) -{ - static uint64_t lasttime = mach_absolute_time(); - static struct timespec monotime = {2678400, 0}; // 1month offset(24*3600*31) - uint64_t now = mach_absolute_time(); - static mach_timebase_info_data_t baseinfo; - if(baseinfo.denom == 0) { - mach_timebase_info(&baseinfo); - } - uint64_t elapsed = (now-lasttime)*baseinfo.numer/baseinfo.denom; - monotime.tv_sec += elapsed/1000000000; - monotime.tv_nsec += elapsed%1000000000; - if(monotime.tv_nsec >= 1000000000) { - monotime.tv_sec += monotime.tv_nsec/1000000000; - monotime.tv_nsec %= 1000000000; - } - lasttime = now; - *tp = monotime; - return 0; -} diff --git a/src/clock_gettime_osx.h b/src/clock_gettime_osx.h deleted file mode 100644 index 1fa39d42..00000000 --- a/src/clock_gettime_osx.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * aria2 - The high speed download utility - * - * Copyright (C) 2010 Tatsuhiro Tsujikawa - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * In addition, as a special exception, the copyright holders give - * permission to link the code of portions of this program with the - * OpenSSL library under certain conditions as described in each - * individual source file, and distribute linked combinations - * including the two. - * You must obey the GNU General Public License in all respects - * for all of the code used other than OpenSSL. If you modify - * file(s) with this exception, you may extend this exception to your - * version of the file(s), but you are not obligated to do so. If you - * do not wish to do so, delete this exception statement from your - * version. If you delete this exception statement from all source - * files in the program, then also delete it here. - */ -/* copyright --> */ -#ifndef D_CLOCK_GETTIME_OSX_H -#define D_CLOCK_GETTIME_OSX_H - -#include "timespec.h" - -int clock_gettime(int dummyid, struct timespec* tp); - -#endif // D_CLOCK_GETTIME_OSX_H diff --git a/src/timespec.h b/src/timespec.h index 038709ff..b1262049 100644 --- a/src/timespec.h +++ b/src/timespec.h @@ -38,8 +38,6 @@ #include -#ifndef HAVE_A2_STRUCT_TIMESPEC struct timespec { time_t tv_sec; long tv_nsec; }; -#endif // !HAVE_A2_STRUCT_TIMESPEC #endif // D_TIMESPEC_H