[darcs-users] darcs patch: Handle empty files in mmapFilePS. Also cater for FD sh...
Petr Rockai
me at mornfall.net
Thu Feb 5 08:24:51 UTC 2009
Judah Jacobson <judah.jacobson at gmail.com> writes:
> I think the below code might be slightly cleaner:
>
> x <- unsafeMMapFile `catch` $ \e -> do
> size <- fileSize `fmap` getSymbolicLinkStatus f
> if size == 0
> then return B.empty
> else throwIO e
>
> That is, explicitly re-throw the caught exception, rather than calling
> unsafeMMapFile again to get it implicitly re-thrown.
The idea is that after performGC, there is a reasonable chance that the second
call will actually succeed.
> Though, for this specific situation it probably doesn't make a big
> difference which way you do it.
It makes a difference, since this way it won't recover on out-of-fd's failure,
unlike the proposed one -- this version will fail for good, which will
basically kill darcs, there's no recovery elsewhere as far as I can tell.
Yours,
Petr.
--
Peter Rockai | me()mornfall!net | prockai()redhat!com
http://blog.mornfall.net | http://web.mornfall.net
"In My Egotistical Opinion, most people's C programs should be
indented six feet downward and covered with dirt."
-- Blair P. Houghton on the subject of C program indentation
More information about the darcs-users
mailing list