Re: [msysGit] upload-pack timing issue on windows?

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

 



On Tue, Aug 24, 2010 at 9:24 PM, Johannes Sixt <j6t@xxxxxxxx> wrote:
> On Montag, 23. August 2010, Erik Faye-Lund wrote:
>> - The culprit seems to be our poll-emulation. My understanding is that
>> poll() was called by create_pack_file() in upload-pack.c with nfds=1
>> (it's 2 until one of the fds are closed) when there's no data
>> available in the pipe. Since our poll() always returns POLLIN when
>> nfds=1, the check for xread(...) == 0 further down in
>> create_pack_file() cause the fd to be closed, leading to an error on
>> the client-side.
>> -  Just removing the nfds=1-hack works for me, but I'm suspecting the
>> nfds=1-hack is there for some socket-reason. So instead I've replaced
>> our poll-emulation with gnulib's in my branch (with a couple of
>> patches on top), and it seems to do the trick for me. I still haven't
>> tested it heavily, though.
>
> The nfds == 1 hack is an "optimization": When only one channel must be
> observed, then we can let (x)read() wait for data instead of doing it inside
> poll() in some way.
>

OK, thanks for the clarification. Unfortunately, this optimization
breaks down in some cases (like the one I described).

> I'm not happy with our poll emulation because it contains a busy-loop.
> Gnulib's version looks quite capable, but I haven't studied it in detail.
> Until then, I trust that it does the right thing.
>

Well, I've found (and supplied patches for) a couple of bugs in it,
but apart from that it seems quite sane. So yeah, I think it might be
the best way forward.

But I'm curious, what's the best way of import a couple of foreign
source files, while maintaining a couple of patches on top of them?
I'm thinking that perhaps a import-commit followed by the patches
would make it easier to merge in changes than to just import the
patched version, but I'm not entirely sure how to do such a merge
without merging a full subtree...
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]