[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(no subject)

From: root
Subject: (no subject)
Date: Mon, 13 Aug 2001 05:26:40 -0400

>From address@hidden  Thu Feb 15 05:50:43 2001
>Return-Path: <address@hidden>
Received: from ( [])
        by (8.9.3/8.9.3/Debian 8.9.3-21) with ESMTP id 
        for <address@hidden>; Thu, 15 Feb 2001 05:50:42 +0900
Received: from localhost ([]
        by with esmtp (Exim 3.16 #1 (Debian))
        id 14T8qP-0000Yi-00; Wed, 14 Feb 2001 15:48:09 -0500
Received: from [] (
        by with esmtp (Exim 3.16 #1 (Debian))
        id 14T8pJ-0000XE-00
        for <address@hidden>; Wed, 14 Feb 2001 15:47:02 -0500
Received: (from address@hidden)
        by (8.11.2/8.9.3) id f1EKl1l25900;
        Wed, 14 Feb 2001 15:47:01 -0500 (EST)
X-Authentication-Warning: laine set sender to address@hidden 
using -f
To: address@hidden
From: address@hidden (Laine Stump)
Subject: Re: Timestamp race avoidance in do_update()
References: <address@hidden>
In-Reply-To: <address@hidden>
Message-ID: <address@hidden>
User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Sender: address@hidden
Errors-To: address@hidden
X-BeenThere: address@hidden
X-Mailman-Version: 2.0
Precedence: bulk
List-Help: <mailto:address@hidden>
List-Post: <mailto:address@hidden>
List-Subscribe: <>,
List-Id: Announcements and discussions for the CVS version control system 
List-Unsubscribe: <>,
List-Archive: <>
Date: 14 Feb 2001 15:47:01 -0500
Status: O
Content-Length: 2280
Lines: 46

address@hidden (Larry Jones) writes:

> Laine Stump writes:
> > 
> > What I'm wondering is if we could change the "sleep(1); to be a
> > usleep(200) in a while loop instead. This should trim 1/2 a second
> > from each invocation of commit, on average, which can be quite a lot
> > when you're talking about several thousand files with dozens of
> > revisions for each...
> Unfortunately, usleep() isn't portable.

Okay, then how about nanosleep()? Here's what the nanosleep() manpage
on NetBSD says about its portability:

  The nanosleep() function conforms to IEEE Std 1003.1b-1993 (``POSIX'').

(This is "Realtime Extensions to Posix"). (The only standard that
applies to usleep() is "X/Open Portability Guide Issue 4 Version 2
(XPG4.2), which doesn't sound nearly as impressive as something with
POSIX in the name).

Note that Windows doesn't even have sleep(). The "glue" stuff in the
windowsNT directory implements a sleep(n) function which is a call to
the Windows API Sleep(n*1000). (No, I don't know what the Honeywell
Level 6 OS provides, or VMS or whatever. Unfortunately, the only
machines I have access to these days are NetBSD, Linux, and Windoze).

>  Like I keep saying, the trick
> (if you want to call it that) is to commit those several thousand files
> with a single invocation of commit so you only pay the price once
> instead of over and over and over.

That would make for a *much* more complex and memory-intensive perl
script (the script in question being one which converts VSS history to
CVS history).

Aside from the basic extra duty of keeping track of multiple files at
once rather than cycling through a list, each commit for each file has
a different log comment, so multiple commits *can't* be done with a
single invocation of cvs. (I take that back - I suppose I could save
all log comments, then go back and change them later with a long
string of "cvs admin -m<rev>:<message> <file>" commands, but that
makes the script even more complex and memory intensive, and we must
remember that I'm a lazy programmer, who would rather change one sleep
to nanosleep() than to write a ton of confusing perl ;-)

Info-cvs mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]