Skip to content

Commit

Permalink
v6.30
Browse files Browse the repository at this point in the history
  • Loading branch information
jfriesne committed Aug 11, 2015
1 parent 4bb1698 commit 90c89bd
Show file tree
Hide file tree
Showing 22 changed files with 1,750 additions and 592 deletions.
33 changes: 30 additions & 3 deletions HISTORY.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,42 @@ key: - new feature
* bug fixed
o other

6.23 Release 7/7/2015
6.30 Released 8/11/2015
- The Message class now uses special-case variant logic for fields
that contain only a single value, so that in the common case
the allocation of an AbstractDataArray object is avoided.
- Added a convenience overload of GetMessageFromPool() that
takes a ByteBufferRef as its argument.
* Merged in Mika's patch to fix the _sntprintf_s() calls in
the Windows implementation of SysLog.cpp.
* DetectNetworkConfigChanges.cpp would fail to compile under Windows
under some circumstances, due to unicode-string handling issues.
Fixed.
* Added spaces to *_FORMAT_SPEC tokens in dataio/RS232DataIO.cpp
* Added missing namespace qualifiers to MCRASH() macro, so that it
can be called from another namespace.
* Fixed a bug in the Hashtable class that could cause crashes
after a call to EnsureSize(0, true).
* Message::Unflatten() now resizes the Message's entries-Hashtable
to be the exact size of the number of entries it will contain.
* Added some #includes to the gz*.c zlib files so "implicit
function declaration" warnings are no longer emitted when
compiling under MacOS/X.
* Fixed a static-initialization-ordering bug in the ObjectCounterBase
class that could cause it to try and lock an invalid Mutex during
process startup or shutdown.
* Under Windows, use of the ChildProcessDataIO class could cause
an empty Console window to appear. That no longer happens.

6.23 Released 7/7/2015
- The StringMatcher class now has a IsPatternListOfUniqueValues()
method that returns true iff the that pattern is a comma-separated
method that returns true iff the held pattern is a comma-separated
list of non-wildcarded values.
o NodePathMatcher::DoTraversalAux() was using a Queue as a cache,
which could be inefficient due to O(N^2) lookups in certain cases.
Replaced it with a Hashtable for better performance.
o Optimized the NodePathMatcher algorithm to be more efficient
when node-paths that include clauses that are long lists of
with node-paths that include clauses that are long lists of
comma-separated node names.
* SharedFilterSessionFactory.cpp wouldn't compile if -DMUSCLE_AVOID_IPV6
was specified on the compile line. Fixed.
Expand Down
2 changes: 1 addition & 1 deletion README.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<H2>
MUSCLE: Crossbar Server, Portable Messaging and Support Classes<p>
7/7/2015 v6.23 jaf@meyersound.com<p>
8/11/2015 v6.30 jaf@meyersound.com<p>
Jeremy Friesner / Meyer Sound Laboratories Inc.<p>
Win32 compatibility contributions by Vitaliy Mikitchenko<p>
C# client code by Wilson Yeung<p>
Expand Down
11 changes: 6 additions & 5 deletions dataio/ChildProcessDataIO.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -107,11 +107,12 @@ status_t ChildProcessDataIO :: LaunchChildProcessAux(int argc, const void * args
STARTUPINFOA siStartInfo;
{
memset(&siStartInfo, 0, sizeof(siStartInfo));
siStartInfo.cb = sizeof(siStartInfo);
siStartInfo.hStdError = childStdoutWrite;
siStartInfo.hStdOutput = childStdoutWrite;
siStartInfo.hStdInput = childStdinRead;
siStartInfo.dwFlags = STARTF_USESTDHANDLES;
siStartInfo.cb = sizeof(siStartInfo);
siStartInfo.hStdError = childStdoutWrite;
siStartInfo.hStdOutput = childStdoutWrite;
siStartInfo.hStdInput = childStdinRead;
siStartInfo.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW;
siStartInfo.wShowWindow = SW_HIDE; // avoid the introduction of an empty console window
}

String cmd;
Expand Down
8 changes: 4 additions & 4 deletions dataio/RS232DataIO.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ RS232DataIO :: RS232DataIO(const char * port, uint32 baudRate, bool blocking) :
dcb.DCBlength = sizeof(DCB);
GetCommState((void *)_handle, &dcb);

char modebuf[128]; muscleSprintf(modebuf, "%s baud="UINT32_FORMAT_SPEC" parity=N data=8 stop=1", port, baudRate);
char modebuf[128]; muscleSprintf(modebuf, "%s baud=" UINT32_FORMAT_SPEC " parity=N data=8 stop=1", port, baudRate);
if (BuildCommDCBA(modebuf, &dcb))
{
dcb.fBinary = 1;
Expand Down Expand Up @@ -303,7 +303,7 @@ status_t RS232DataIO :: GetAvailableSerialPortNames(Queue<String> & retList)
for (uint32 i=1; i<256; i++)
{
// Try to open the port
char buf[128]; muscleSprintf(buf, "COM"UINT32_FORMAT_SPEC, i);
char buf[128]; muscleSprintf(buf, "COM" UINT32_FORMAT_SPEC, i);
::HANDLE hPort = CreateFileA(buf, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);
if (hPort == INVALID_HANDLE_VALUE)
{
Expand Down Expand Up @@ -451,7 +451,7 @@ void RS232DataIO :: IOThreadEntry()
{
DWORD err = GetLastError();
if (err == ERROR_IO_PENDING) isWaiting = true;
else LogTime(MUSCLE_LOG_ERROR, "WaitCommEvent() failed! errorCode="INT32_FORMAT_SPEC"\n", err);
else LogTime(MUSCLE_LOG_ERROR, "WaitCommEvent() failed! errorCode=" INT32_FORMAT_SPEC "\n", err);
}
}

Expand Down Expand Up @@ -562,7 +562,7 @@ void RS232DataIO :: IOThreadEntry()
else
{
if (GetLastError() == ERROR_IO_PENDING) pendingWriteBytes = numBytesToWrite;
else LogTime(MUSCLE_LOG_ERROR, "RS232SerialDataIO: WriteFile() failed! err="INT32_FORMAT_SPEC"\n", GetLastError());
else LogTime(MUSCLE_LOG_ERROR, "RS232SerialDataIO: WriteFile() failed! err=" INT32_FORMAT_SPEC "\n", GetLastError());
}
}
if (keepGoing == false) break;
Expand Down
2 changes: 1 addition & 1 deletion html/Beginners Guide.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<HTML>
<HEAD>
<H1>MUSCLE Overview and Beginner's Guide</H1>
<H4>v6.23 / Jeremy Friesner / Meyer Sound Laboratories Inc (jaf@meyersound.com) 7/7/2015</H4>
<H4>v6.30 / Jeremy Friesner / Meyer Sound Laboratories Inc (jaf@meyersound.com) 8/11/2015</H4>
<A HREF="http://www.lcscanada.com/muscle/html/index.html">Click here for DOxygen class API documentation</A>
</HEAD>

Expand Down
2 changes: 1 addition & 1 deletion html/Custom Servers.html
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<HTML>
<HEAD>
<H1>Implementing a Custom Server with MUSCLE</H1>
<H4>v6.23 / Jeremy Friesner / Meyer Sound Laboratories Inc / jaf@meyersound.com 7/7/2015</H4>
<H4>v6.30 / Jeremy Friesner / Meyer Sound Laboratories Inc / jaf@meyersound.com 8/11/2015</H4>
</HEAD>
<BODY bgcolor=#ffffff>
<H2>Introduction</H2>
Expand Down
3 changes: 2 additions & 1 deletion html/autodoc/muscle.dox
Original file line number Diff line number Diff line change
Expand Up @@ -1978,7 +1978,8 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

PREDEFINED = "HT_UniversalSinkKeyRef=" \
PREDEFINED = MuscleMessage_impl_h \
"HT_UniversalSinkKeyRef=" \
"HT_UniversalSinkValueRef=" \
"HT_UniversalSinkKeyValueRef=" \
"HT_SinkKeyParam=const KeyType &" \
Expand Down
Loading

0 comments on commit 90c89bd

Please sign in to comment.