On Monday, 11 August 2014 at 02:46:11 UTC, Timothee Cour via
Digitalmars-d wrote:
On Sun, Aug 10, 2014 at 7:21 PM, Timothee Cour
<[email protected]>
wrote:
This used to work prior to 2.066 (rc):
Duration t;
auto tv=timeval(t.total!"seconds",t.fracSec.usecs);
now it works but with:
Deprecation: function core.time.Duration.fracSec is deprecated
- Please
use split instead.
I see there's a SysTime.toTimeVal but there's no
Duration.toTimeVal.
Shouldn't there be?
What would be the new recommended implementation?
Also, I think deprecation messages could be more precise,
telling exactly
how to make the change instead of telling you the function
name.
is this correct?
int secs,usecs;
timeout.split!("seconds","usecs")(secs,usecs);
auto tv=timeval(secs,usecs);
specifically, I'm not sure about the type 'int'.
Technically, timeval is
struct timeval
{
time_t tv_sec;
suseconds_t tv_usec;
}
so tv_sec is 64-bits on a 64-bit system, though you'd probably
get away with using an int. Regardless, I'd suggest doing this:
timeval tv;
timeout.split!("seconds, "usecs")(tv.tv_sec, tv.tv_usec);
since then you don't have to care what integral type they are.
- Jonathan M Davis