[muscle] Re: node path info
- From: Jeremy Friesner <jaf@xxxxxxxxxxxx>
- To: muscle@xxxxxxxxxxxxx
- Date: Tue, 21 Jun 2005 14:29:30 -0700
Hey Gabe...
I sure do... I've attached the 3.00 change log. I don't forsee any other
major changes before release, but I won't guarantee it.
If you want I can send you the full current source code also, just let me
know.
Should we attempt to get the Ruby bindings in as part of the 3.00 release?
(I'm planning to release v3.00 probably in the next week or two)
Jeremy
On Tuesday 21 June 2005 13:53, Gabriel Bauman wrote:
> On 6/18/05, Jeremy Friesner <jaf@xxxxxxxxxxxx> wrote:
> > Thanks, I'm glad you like it. Note that v3.00 will be out pretty soon,
> > and it will change a few things, so watch out for that.
>
> Jeremy, do you have any info you can release on the changes so I can
> be sure that the Ruby bindings work with your upcoming release?
>
> Gabe
This file contains the version history/change log for this software.
key: - new feature
* bug fixed
o other
v3.00 Released ???
NOTE: THIS RELEASE BREAKS SOURCE CODE COMPATIBILITY WITH PREVIOUS
RELEASES OF THE MUSCLE API. IF YOU HAVE CODE THAT WAS WRITTEN FOR
PREVIOUS VERSIONS OF MUSCLE, YOU WILL NEED TO MODIFY IT SOMEWHAT
IN ORDER FOR IT TO COMPILE AND RUN PROPERLY. SEE THE TWO ITEMS
MARKED WITH (o) BELOW FOR DETAILS.
- Updated the included zlib distribution to v1.2.2.
- Added StoreTraceValue(), TCHECKPOINT(), SetTraceValuesLocation(),
and associated functions to MuscleSupport.h. These functions can
be useful in tracking down where code is executing at when a
debugger isn't available.
- Added a maxDepth argument to the LogStackTrace() call.
- Added a PrintStackTrace() function to syslog/SysLog.{cpp,h}.
This is similar to LogStackTrace(), but the stack trace
goes directly to stdout instead of going to the log facility.
- Added a "win32client" test/example app to the tests folder.
This app tests/demos the Win32MessageTransceiverThread class.
- Added a SetSignalHandlingEnabled() method to the ReflectServer
class, to allow servers to exit cleanly when an interrupt
signal is received.
- muscled now accepts an optional "catchsignals" argument that
enables handling of interrupt signals (Control-C) to initiate
a controlled shutdown.
- muscleMax() and muscleMin() can now take up to five arguments,
for convenience.
- If you define the compiler constant MUSCLE_ENABLE_MEMORY_PARANOIA
to an integer value (as well as MUSCLE_ENABLE_MEMORY_TRACKING),
then the muscle memory allocator/deallocator code will add that many
guard values to the front and end of all dynamically allocated
buffers in order to detect bad memory writes. The guard values will
be checked whenever the buffers are freed or resized, to make sure
they haven't been overwritten, and it will also fill all allocated
and freed buffers with special garbage bytes (0x55 and 0x66),
so that it will be more obvious when freed or uninitialized
memory is read. This slows down execution a bit and uses up
extra memory, so it should only be enabled while debugging.
- Added a MemoryParanoiaCheckBuffer() function to
GlobalMemoryAllocator.{cpp,h}. Call this function to manually
validate that an allocated memory buffer hasn't been corrupted.
- All AbstractObjectRecycler objects (i.e. all ObjectPools)
now register themselves in a global linked list, so that
they can be iterated over.
- Added the function GlobalFlushAllCachedObjects() to the
AbstractObjectRecycler class.
- Added a FlushCachedObjects() virtual method to the
AbstractObjectRecycler class. This method is implemented
in the ObjectPool subclasses to call Drain().
- The CompleteSetupSystem destructor now calls
AbstractObjectRecycler::GlobalFlushAllCachedObjects(), so
that all the ObjectPools get flushed before any static objects
start getting destroyed. This helps avoid dangling pointer
problems caused by the undefined ordering of static object
destructor calls.
- Added GetCount() and SetCount() methods to the AtomicCounter
class, since it's occasionally necessary (albeit discouraged)
to get or set the counter's value explicitly.
- Added IsRefPrivate() and EnsureRefIsPrivate() methods to
the Ref class to help facilitate Copy-on-Write semantics.
o Changed all Ref arguments to be passed by const reference
instead of by value. Note that this change will break most
current Muscle-using source code -- your source code will
need to be changed to match, in order for the virtual methods
to be overridden properly. To update your code, you should
change all function arguments of type BlahRef to (const BlahRef &).
o Moved the AbstractObjectRecycler pointer out of the Ref class
and into the RefCountable class, and changed it into an
AbstractObjectManager pointer. Removed the recycler
argument from all Ref class methods. This makes the
Ref class a bit simpler and more efficient, but it also
breaks existing source code. To update your code, you
should change all instances of BlahRef(blah, NULL) to
BlahRef(blah), and all instances of BlahRef(blah, NULL, false)
to BlahRef(blah, false).
o Replaced StorageReflectSession::DrainPools() with
AbstractObjectRecycler::GlobalFlushAllCachedObjects(),
which does the same thing but more thoroughly, since
it flushes all ObjectPools and not just a few of them.
* Added a newnothrow_array #define to MuscleSupport.h and
changed all the muscle code to use it instead of
newnothrow when allocating arrays. This macro works
the same as new (nothrow) for arrays, except it works
around a bug in gcc 3.x that could causes crashes on
memory failure.
* ChildProcessDataIO now forces the removal if the SIGHUP
signal handler in the child process, so that any
grandchild processes will be cleaned up when the child
process is killed.
* Under Win32, if there were no sockets to select() on, select()
would error out and the server loop would return. Fixed.
* Added paranoia debug code to the MUSCLE_POWERPC_TIMEBASE_HZ
implementation of GetRunTime64(), so that if the time base
registers malfunction the app will crash instead of going
into an infinite loop (which is harder to debug).
- References:
- [muscle] node path info
- From: VANHERP Wim
- [muscle] Re: node path info
- From: Jeremy Friesner
- [muscle] Re: node path info
- From: Gabriel Bauman
Other related posts:
- » [muscle] node path info
- » [muscle] Re: node path info
- » [muscle] Re: node path info
- » [muscle] Re: node path info
- » [muscle] Re: node path info
- » [muscle] Re: node path info
- [muscle] node path info
- From: VANHERP Wim
- [muscle] Re: node path info
- From: Jeremy Friesner
- [muscle] Re: node path info
- From: Gabriel Bauman