@@ -76,21 +76,19 @@ MYSQLND_METHOD(mysqlnd_debug, log)(MYSQLND_DEBUG * self,
7676 }
7777 if (flags & MYSQLND_DEBUG_DUMP_TIME ) {
7878 /* The following from FF's DBUG library, which is in the public domain */
79- struct timeval tv ;
79+ struct timespec ts ;
8080 struct tm * tm_p ;
81- if (gettimeofday (& tv , NULL ) != -1 ) {
82- const time_t sec = tv .tv_sec ;
83- if ((tm_p = localtime ((const time_t * )& sec ))) {
84- snprintf (time_buffer , sizeof (time_buffer ) - 1 ,
85- /* "%04d-%02d-%02d " */
86- "%02d:%02d:%02d.%06d " ,
87- /*tm_p->tm_year + 1900, tm_p->tm_mon + 1, tm_p->tm_mday,*/
88- tm_p -> tm_hour , tm_p -> tm_min , tm_p -> tm_sec ,
89- (int ) (tv .tv_usec ));
90- time_buffer [sizeof (time_buffer ) - 1 ] = '\0' ;
91- } else {
92- time_buffer [0 ] = '\0' ;
93- }
81+ php_realtime_spec (& ts );
82+ if ((tm_p = localtime ((const time_t * )& ts .tv_sec ))) {
83+ snprintf (time_buffer , sizeof (time_buffer ) - 1 ,
84+ /* "%04d-%02d-%02d " */
85+ "%02d:%02d:%02d.%06d " ,
86+ /*tm_p->tm_year + 1900, tm_p->tm_mon + 1, tm_p->tm_mday,*/
87+ tm_p -> tm_hour , tm_p -> tm_min , tm_p -> tm_sec ,
88+ (int ) (ts .tv_nsec / 1000 ));
89+ time_buffer [sizeof (time_buffer ) - 1 ] = '\0' ;
90+ } else {
91+ time_buffer [0 ] = '\0' ;
9492 }
9593 }
9694 if (flags & MYSQLND_DEBUG_DUMP_FILE ) {
@@ -163,21 +161,19 @@ MYSQLND_METHOD(mysqlnd_debug, log_va)(MYSQLND_DEBUG *self,
163161 }
164162 if (flags & MYSQLND_DEBUG_DUMP_TIME ) {
165163 /* The following from FF's DBUG library, which is in the public domain */
166- struct timeval tv ;
164+ struct timespec ts ;
167165 struct tm * tm_p ;
168- if (gettimeofday (& tv , NULL ) != -1 ) {
169- const time_t sec = tv .tv_sec ;
170- if ((tm_p = localtime ((const time_t * )& sec ))) {
171- snprintf (time_buffer , sizeof (time_buffer ) - 1 ,
172- /* "%04d-%02d-%02d " */
173- "%02d:%02d:%02d.%06d " ,
174- /*tm_p->tm_year + 1900, tm_p->tm_mon + 1, tm_p->tm_mday,*/
175- tm_p -> tm_hour , tm_p -> tm_min , tm_p -> tm_sec ,
176- (int ) (tv .tv_usec ));
177- time_buffer [sizeof (time_buffer ) - 1 ] = '\0' ;
178- } else {
179- time_buffer [0 ] = '\0' ;
180- }
166+ php_realtime_spec (& ts );
167+ if ((tm_p = localtime ((const time_t * )& ts .tv_sec ))) {
168+ snprintf (time_buffer , sizeof (time_buffer ) - 1 ,
169+ /* "%04d-%02d-%02d " */
170+ "%02d:%02d:%02d.%06d " ,
171+ /*tm_p->tm_year + 1900, tm_p->tm_mon + 1, tm_p->tm_mday,*/
172+ tm_p -> tm_hour , tm_p -> tm_min , tm_p -> tm_sec ,
173+ (int )(ts .tv_nsec / 1000 ));
174+ time_buffer [sizeof (time_buffer ) - 1 ] = '\0' ;
175+ } else {
176+ time_buffer [0 ] = '\0' ;
181177 }
182178 }
183179 if (flags & MYSQLND_DEBUG_DUMP_FILE ) {
@@ -329,8 +325,8 @@ MYSQLND_METHOD(mysqlnd_debug, func_leave)(MYSQLND_DEBUG * self, unsigned int lin
329325 uint64_t own_time = call_time - mine_non_own_time ;
330326 uint32_t func_name_len = strlen (* func_name );
331327
332- self -> m -> log_va (self , line , file , zend_stack_count (& self -> call_stack ) - 1 , NULL , "<%s (total=%u own=%u in_calls=%u )" ,
333- * func_name , ( unsigned int ) call_time , ( unsigned int ) own_time , ( unsigned int ) mine_non_own_time
328+ self -> m -> log_va (self , line , file , zend_stack_count (& self -> call_stack ) - 1 , NULL , "<%s (total=%" PRIu64 " own=%" PRIu64 " in_calls=%" PRIu64 " )" ,
329+ * func_name , call_time , own_time , mine_non_own_time
334330 );
335331
336332 if ((f_profile = zend_hash_str_find_ptr (& self -> function_profiles , * func_name , func_name_len )) != NULL ) {
0 commit comments