<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 23, 2015 at 5:25 AM, Dave Chinner <span dir="ltr"><<a href="mailto:david@fromorbit.com" target="_blank">david@fromorbit.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, Sep 15, 2015 at 11:59:20AM +0200, Jan Tulak wrote:<br>
> OS X does not have the timer used in xfs_repair.<br>
> Add a simple implementation providing the required<br>
> capabilities.<br>
</span>....<br>
<div><div class="h5">> #endif /* __XFS_DARWIN_H__ */<br>
> diff --git a/repair/progress.c b/repair/progress.c<br>
> index 27cbaef..0fee7dc 100644<br>
> --- a/repair/progress.c<br>
> +++ b/repair/progress.c<br>
> @@ -184,10 +184,22 @@ progress_rpt_thread (void *p)<br>
> */<br>
><br>
> timespec.it_value.tv_sec = msgp->interval;<br>
> - timespec.it_value.tv_nsec = 0;<br>
> timespec.it_interval.tv_sec = msgp->interval;<br>
> + /*<br>
> + * On some platforms (like OS X), timers and time things are slightly<br>
> + * different: itimerspec is replaced with itimerval and timeval struct<br>
> + * has no tv_nsec, but just tv_usec member.<br>
> + * For compatibility, itimerspec is a macro defined to the existing<br>
> + * itimerval on these platforms, and in such case, use usec instead<br>
> + * of nsec.<br>
> + */<br>
> +#ifndef itimerspec<br>
> + timespec.it_value.tv_nsec = 0;<br>
> timespec.it_interval.tv_nsec = 0;<br>
> -<br>
> +#else<br>
> + timespec.it_value.tv_usec = 0;<br>
> + timespec.it_interval.tv_usec = 0;<br>
> +#endif<br>
<br>
</div></div>That's pretty nasty. How about this:<br>
<br>
memset(×pec, 0, sizeof(timespec));<br>
timespec.it_value.tv_sec = msgp->interval;<br>
timespec.it_interval.tv_sec = msgp->interval;<br></blockquote><div><br></div><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;display:inline">This is much better and elegant solution. :-)</div></div><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;display:inline"><br></div></div><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;display:inline">Cheers,</div></div><div><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;display:inline">Jan</div></div></div><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Jan Tulak<br></div><a href="mailto:jtulak@redhat.com" target="_blank">jtulak@redhat.com</a> / <a href="mailto:jan@tulak.me" target="_blank">jan@tulak.me</a></div></div></div></div>
</div></div>