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

Reply via email to