Age | Commit message (Collapse) | Author |
|
|
|
|
|
This may not all work yet, but it all compiles!
|
|
It should allow you to open and create arbitrary stream ids, truncate,
exclusive mode, etc.
|
|
That was weird. It seems to be working now.
|
|
|
|
Still to go: bootstrapping reading the initial header, saving the
header, growing streams as we write?
|
|
|
|
If so, this will fix the issue where streams randomly truncate when
accessed by multiple threads.
|
|
There's an issue somewhere sometimes and streams are being truncated. My
guess is a multi-threaded issue.
|
|
|
|
|
|
|
|
|
|
|
|
mismatches because of socket handles, but there were also some
order-of-definition issues that were fixed in the FD_SETSIZE definition code.
Fixed a few things that just never worked on windows, like Bu::Thread::yield().
|
|
replace that with just an array, no problem. It's many, many, many times
faster while streams are growing, and it should be constant time, not linear
like it was before.
It also handles myriad files in excess of 2gb correctly now, at least, it
seems to just fine :)
|
|
|
|
streams accessing the same blocks at the same time. Right now it's safe, but
a little strange, since both streams work from seperate buffers. Maybe that's
ok, but it still needs some more investigation.
I want to remove the BitString stuff entirely, it turns out it's the slowest
part, which, upon actually looking at the code is completely obvious. This
change shouldn't change the API at all, just make adding blocks to streams much,
much faster.
|
|
doesn't yet normalize the endian-ness, and I guess at this point to maintain
compatibility I'll have to make it a little endian format. I would still like
to add better thread-safety to it, but that's about it.
|