Age | Commit message (Collapse) | Author |
|
unprotected, but fortunately this time I was able to use a read lock which is
much lest nasty and persistant.
|
|
syncing changes. That was important so that more changes wouldn't be added
while we're writing, but it also meant that in a very particular circumstance
where one thread was syncing changes, another was marking changes as having
happened, and another locked an object that was being written because it had
changes they would all deadlock. This should be fixed now.
|
|
code, but I have a feeling the fix could be much better. I'll look into it
later on.
|
|
you want to.
|
|
important, they are references to constant data, weather they should be able to
become bound still.
|
|
backspace key was pressed, backspace is to move the cursor back one
non-destructively, DEL is sent to indicate that a backspace was pressed.
I now treat BS as DEL when serving because some clients (windows), send the BS
instead of DEL key and everything else just seems to take it. I think there's
a way to negotiate that, which I'll look into later.
|
|
you the next line.
|
|
|
|
(*caugh* windows *caugh*)
|
|
appropriate headers. bin2cpp now uses those headers to compile correctly
despite having missing filters.
|
|
of each file in the source. It would be nice to have an enumeration or
something at some point too.
|
|
that we don't get valgrind errors, and is probably safer in general.
Added Bu::ArchiveStream. It could use some tweaks, but as a quick hack it's
handy to allow systems that can only read/write from/to streams to work with
archives.
|
|
and both really need to be. Bu::Client is used in multi-threaded applications
and has been for a while, so it's a no brainer. It may need a little bit more
safety added around variable access, but all the buffers are safe now.
ProtocolTelnet has it's own issus, and I should probably rework a few parts of
it before too long so we can better accomidate things like line editing.
|
|
|
|
deleted before the sync could occur properly. They are now ignored during
sync.
|
|
it still has active references, and it will be safely cleaned up when the last
reference is released.
|
|
We can't be waiting for an update later on to flush our buffers all the time!
|
|
|
|
I assumed a long would be 4 bytes, that was silly!
|
|
|
|
|
|
|
|
|
|
|
|
things seem to work. We've also tested against LLVM.
|
|
cache information before they are deserialized from storage. This changed the
signature of the cache loading template function, but the new function isn't
harder to use, and provides the key information as well.
|
|
|
|
and fixed a null/integer issue in Bu::Hash
|
|
iterator issue in Bu::String.
|
|
wrapper that lets you take advantage of nifty Locker based mutex locking when
in a CacheObject subclass.
|
|
after they are saved. It needs some more testing, but the theory is sound.
|
|
to be re-engineered to actually do a lazy erase like removing an iNode in a
posix filesystem. While the file remains open it exists, but the references
visible to the user on disk are gone.
|
|
in the CacheEntry class, not the CacheObject, so you can't lock it until you
have an entry. This isn't a big deal unless your objects aren't actually
part of a cache yet. I changed it so that lock/unlock have no effect if you
haven't joined to a cache yet, probably not ideal, I'll think about moving
that mutex.
I also fixed it so you can lock/unlock even when const.
|
|
|
|
saving an entry or syncing.
|
|
|
|
key is loaded then the query doesn't even get to the superclass.
|
|
|
|
now ready for actual use.
|
|
The old cache system will be going away now, so if you need it for anything,
grab a version before this commit.
Oh, also, happy 1,000th commit!
|
|
|
|
it works very, very differently, but the interface is proving much easier to
use and it should be much faster, not to mention thread-safe.
|
|
The new cache is really coming along now.
|
|
computers.
|
|
testing now. The idea is that it makes it easy to use a bi-directional stream
like a tcpstream that requires a seperate filter instance for each read and
write side.
|
|
for Bu::Hash, which tests the basics alright, but not the synchro part. I'm
still trying to figure out a good test for that.
|
|
encapsulation, at least for the read/write guy. Also started work on a
thread-safe wrapper for the standard hash. There is a lot of functionality we
just have to leave out in this, it's just too dangerous in a thread-safe class.
|
|
two classes, one for the store, one for the cache itself. The index will have
to go with the store, which I find a little odd, but it'll...probably work out.
|
|
|
|
Creating an experimental new cache system that's controlled primarily with a
subclass. This should cut down significantly on the amount of code needed to
use the cache. The new one also features a required (for now) base class for
objects that use the cache. This simplifies so many different things.
|