diff options
author | elliott_c <ocielliottc@users.noreply.github.com> | 2003-09-10 12:51:57 +0000 |
---|---|---|
committer | elliott_c <ocielliottc@users.noreply.github.com> | 2003-09-10 12:51:57 +0000 |
commit | 363d867e309986a080713a16a39ec1852031655e (patch) | |
tree | d4b6fa99e356bb1f1057fad24fd7002df37a50c6 /TAO/TAO_IDL | |
parent | 8206f21b43b89e1ec2dabab29de0f3ed4515cce6 (diff) | |
download | ATCD-363d867e309986a080713a16a39ec1852031655e.tar.gz |
ChangeLogTag: Wed Sep 10 07:48:55 2003 Chad Elliott <elliott_c@ociweb.com>
Diffstat (limited to 'TAO/TAO_IDL')
-rw-r--r-- | TAO/TAO_IDL/be/be_interface.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp index 587d7e5c554..e4a0df44a5d 100644 --- a/TAO/TAO_IDL/be/be_interface.cpp +++ b/TAO/TAO_IDL/be/be_interface.cpp @@ -766,17 +766,24 @@ be_interface::gen_operation_table (const char *flat_name, // collect the input for the gperf program. { // Temp file name. + // We must randomize this a bit in order to avoid problems with + // processing more than one idl file (in separate processes) with + // the same name (in different directories). char *temp_file = 0; ACE_NEW_RETURN (temp_file, char [ACE_OS::strlen (idl_global->temp_dir ()) + + 11 // The number of possible digits in + // a 32-bit number plus a dot + ACE_OS::strlen (flat_name) + ACE_OS::strlen (".gperf") + 1], -1); + ACE_RANDR_TYPE seed = ACE_OS::time(); ACE_OS::sprintf (temp_file, - "%s%s.gperf", + "%s%d.%s.gperf", idl_global->temp_dir (), + ACE_OS::rand_r(seed), flat_name); // QNX can't handle individual file names (path components) |