[PD-dev] open_via_path / close file - WIndows CRT problems

IOhannes m zmoelnig zmoelnig at iem.at
Tue Jul 3 15:40:15 CEST 2012


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2012-07-03 15:19, Thomas Grill wrote:
> Hi all, when trying to trace a bug in one of my externals i came
> across what could be an issue in the PD API.
> 
> The header m_pd.h exposes the function open_via_path which can be
> used in externals to search file in the PD search path. On success
> it opens the file and returns a file handle, which can in turn be
> used by the external code. This doesn't seem to be a problem on
> Unix-based systems. On Windows, under certain circumstances [1], PD
> and the external use separate copies of the CRT, meaning that
> passing the file handle and using POSIX-style file functions
> between dynamically linked binaries is not really possible. The
> file handle would not be valid in the external. This happens when
> at least one party is linked with the threaded static CRT, which is
> the default with PD and most externals.
> 
> Now, i'm wondering how this problem can have been hidden for so
> long. Are there no externals using open_via_path and running under
> Windows? This must be a problem for all script loader externals
> relying on the PD path, like my py/pyext external. Am i doing
> something wrong, or is there a known solution/workaround etc.?

Pd-0.43 introduced sys_close() in order to have the same CRT
implementation open and close the file.

prior version of Pd lack this function and therefore there a number of
file-handle leakage bugs were reported.


fgadsrm
IOhannes
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk/y9jwACgkQkX2Xpv6ydvQlCQCfVC3tPyHV7WejqPLquyBKM+4K
bFoAn2tFSBlkjSwvm0EoPdKAuw4tftlB
=Vcs6
-----END PGP SIGNATURE-----

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2320 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20120703/9f5d8511/attachment.bin>


More information about the Pd-dev mailing list