Browse Source

merge in some PHP3 stuff

experimental/newoperator
Sascha Schumann 28 years ago
parent
commit
4fe8fe715e
  1. 3
      ChangeLog.TODO
  2. 77
      ext/standard/microtime.c

3
ChangeLog.TODO

@ -42,7 +42,6 @@ March 1 1999, Version 3.0.7
variables.
- Clean up apxs build
- Add INSTALL.REDHAT file to walk RedHat users through the install
- Added YP/NIS module from Stephanie Wehner
- Added optional second argument to mysql_fetch_array(); MYSQL_ASSOC will
cause the resulting array to contain the associative indices only,
MYSQL_NUM will cause the array to contain the numeric indices only (like
@ -88,7 +87,5 @@ March 1 1999, Version 3.0.7
- Constructors of parent classes weren't accessible to derived classes (as
of 3.0.6). Fixed.
- Introduce simple regex compilation cache
- Add gettimeofday() function
- Add getrusage() function

77
ext/standard/microtime.c

@ -54,11 +54,7 @@
/* {{{ proto string microtime(void)
Returns a string containing the current time in seconds and microseconds */
#ifdef __cplusplus
void php3_microtime(HashTable *)
#else
PHP_FUNCTION(microtime)
#endif
{
#if HAVE_GETTIMEOFDAY
struct timeval tp;
@ -76,6 +72,79 @@ PHP_FUNCTION(microtime)
}
/* }}} */
/* {{{ proto array gettimeofday(void)
returns the current time as array */
PHP_FUNCTION(gettimeofday)
{
#if HAVE_GETTIMEOFDAY
struct timeval tp;
struct timezone tz;
memset(&tp, 0, sizeof(tp));
memset(&tz, 0, sizeof(tz));
if(gettimeofday(&tp, &tz) == 0) {
array_init(return_value);
add_assoc_long(return_value, "sec", tp.tv_sec);
add_assoc_long(return_value, "usec", tp.tv_usec);
add_assoc_long(return_value, "minuteswest", tz.tz_minuteswest);
add_assoc_long(return_value, "dsttime", tz.tz_dsttime);
return;
} else
#endif
RETURN_FALSE;
}
/* }}} */
/* {{{ proto array getrusage([ int who ])
returns an array of usage statistics */
PHP_FUNCTION(getrusage)
{
#if HAVE_GETRUSAGE
struct rusage usg;
int ac = ARG_COUNT(ht);
pval *pwho;
int who = RUSAGE_SELF;
if(ac == 1 &&
getParameters(ht, ac, &pwho) != FAILURE) {
convert_to_long(pwho);
if(pwho->value.lval == 1)
who = RUSAGE_CHILDREN;
}
memset(&usg, 0, sizeof(usg));
if(getrusage(who, &usg) == -1) {
RETURN_FALSE;
}
array_init(return_value);
#define PHP3_RUSAGE_PARA(a) \
add_assoc_long(return_value, #a, usg.a)
#ifndef _OSD_POSIX /* BS2000 has only a few fields in the rusage struct */
PHP3_RUSAGE_PARA(ru_oublock);
PHP3_RUSAGE_PARA(ru_inblock);
PHP3_RUSAGE_PARA(ru_msgsnd);
PHP3_RUSAGE_PARA(ru_msgrcv);
PHP3_RUSAGE_PARA(ru_maxrss);
PHP3_RUSAGE_PARA(ru_ixrss);
PHP3_RUSAGE_PARA(ru_idrss);
PHP3_RUSAGE_PARA(ru_minflt);
PHP3_RUSAGE_PARA(ru_majflt);
PHP3_RUSAGE_PARA(ru_nsignals);
PHP3_RUSAGE_PARA(ru_nvcsw);
PHP3_RUSAGE_PARA(ru_nivcsw);
#endif /*_OSD_POSIX*/
PHP3_RUSAGE_PARA(ru_utime.tv_usec);
PHP3_RUSAGE_PARA(ru_utime.tv_sec);
PHP3_RUSAGE_PARA(ru_stime.tv_usec);
PHP3_RUSAGE_PARA(ru_stime.tv_sec);
#undef PHP3_RUSAGE_PARA
#endif /* HAVE_GETRUSAGE */
}
/* }}} */
/*
* Local variables:
* tab-width: 4

Loading…
Cancel
Save