From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: Problem about usleep function in tools/hotplug/Linux/xendomains.in Date: Mon, 16 Mar 2015 15:31:22 +0000 Message-ID: <1426519882.18247.94.camel@citrix.com> References: <5506B7D4.80901@m2r.biz> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <5506B7D4.80901@m2r.biz> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Fabio Fantoni Cc: Wei Liu , Stefano Stabellini , Ian Jackson , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org On Mon, 2015-03-16 at 12:00 +0100, Fabio Fantoni wrote: > If usleep binary is missed in dom0 xendomains script use its function > instead but as it is done now always rounds down to the nearest integer > number, and in case it is less than 1 becomes 0. > So for example in dom0 like those I use (debian) withoutusleep binaryall > small usleep in the script are null. > > A solution can be to replace: > > usleep() > > { > > if [ -n "$1" ] > > then > > sleep $(( $1 / 1000000 )) > > fi > > } > with: > > usleep() > > { > > if [ -n "$1" ] > > then > > sleep $(printf %f "$1e-6") > > fi > > } > > This case is ok with sleep from gnu coreutils but if there are other > cases with different sleep command only integer and also without usleep > that I don't know will be not working. > > Can This solution be better that the actual and I must do a patch or > someone have a better solution? sleep $(( ( ($1 + 999999) / 1000000 )) Should do the right thing (i.e. round up), I think. Ian. > > Thanks for any reply and sorry for my bad english.