TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: John Cocula
from: Craig Swanson
date: 1994-10-09 15:39:56
subject: Warp 2 no longer accepts

JC> A quick workaround to the problem you point out is to run DLLRNAME
 JC> from C Set++ on the DLL and all referencing DLLs and EXEs.  Or, the
 JC> developer could serially name shipped DLLs as their contents would
 JC> break older versions.

Maybe IBM should consider shipping such a utility with OS/2.  How else are
users going to work around such problems without development tools?  I
doubt that many developers are going to be super-helpful with problems like
this as it isn't a bug, it is an unfortunate
coincidence.

 JC> But perhaps the new 8.3 restriction is present precisely because IBM
 JC> has added just the feature you're asking for.  WARP II has a dynamic
 JC> LIBPATH per session.  By issuing SET BEGINLIBPATH=xxx (and hopefully
 JC> anything that sets the environment variable BEGINLIBATH), you can
 JC> prepend a path to the LIBPATH= statement specified in CONFIG.SYS.  For
 JC> that session, these new path(s) will be searched before the default
 JC> LIBPATH.  An ENDLIBPATH also exists to append paths to the default
 JC> LIBPATH.

That's really useful.  Most DLL's do not need to be globally accessible via
LIBPATH.  Most of the time, sticking a "." at the front of
LIBPATH is good enough, but I can see how this wouldn't be enough for
application suites that may be sharing DLL's but should have different
components stored in separate directories.

 JC> I'm unclear on what happens when a load module is already in memory
 JC> with the same module name as one that now appears earlier in the
 JC> dynamic LIBPATH, when a new DosLoadModule is issued.  Perhaps
 JC> everything is now based on fully qualified paths when the kernel
 JC> searches for already loaded DLLs?  There are probably other issues I
 JC> haven't thought of, that hopefully IBM *did* think of. :-)

I'm certainly not going to assume that IBM actually thought of such things.
 They finally got around to "fixing" the named pipe blocking
issue I reported as a bug in October 1993.  Their "fix" is an
improvement, but it still doesn't address the root problem of why doesn't a
thread blocked on DosConnectNPipe() unblock and return with an error when
another thread issues DosClose() on the named pipe? The work-around is that
if you want to shut down a named pipe server in an orderly fashion, it is
necessary to issues DosOpen() calls inside the server to
"connect" all the named pipes long enough to get the
DosConnectNPipe() calls to unblock.  What IBM did fix is that there is no
longer a race condition in the kernel that frequently resulted in the
thread never unblocking even with this workaround.

 JC> Also puzzling in WARP II is that a SET BEGINLIBPATH=xxx statement
 JC> doesn't appear to define a (visible) environment variable.  Unless SET
 JC> BEGINLIBPATH=xxx is interpreted by CMD.EXE as different from other SET
 JC> statements, and a new API is being called, this is inconsistent and
 JC> should be done differently.

I don't mind if it isn't an environment variable as long as they provide
new commands and API calls to manipulate the DLL search paths. My personal
opinion is that IBM would do a lot of good for the entire OS/2 community if
they would overall the entire software
installation/deinstallation mechanism in OS/2 to provide a
standardized and comprehensive method to install and deinstall OS/2
software without having to muck around changing CONFIG.SYS and STARTUP.CMD
and without leaving garbages around in INI files after deinstallation.


--- Maximus/2 2.01wb

* Origin: OS/2 Connection {at} Mira Mesa, CA (1:202/354)
SEEN-BY: 12/2442 54/54 620/243 624/50 632/348 640/820 690/660 711/409 410 413
SEEN-BY: 711/430 807 808 809 934 942 949 712/353 623 713/888 800/1
@PATH: 202/354 301 1 3615/50 229/2 12/2442 711/409 54/54 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.