summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL
diff options
context:
space:
mode:
authorelliott_c <ocielliottc@users.noreply.github.com>2003-09-10 12:51:57 +0000
committerelliott_c <ocielliottc@users.noreply.github.com>2003-09-10 12:51:57 +0000
commit363d867e309986a080713a16a39ec1852031655e (patch)
treed4b6fa99e356bb1f1057fad24fd7002df37a50c6 /TAO/TAO_IDL
parent8206f21b43b89e1ec2dabab29de0f3ed4515cce6 (diff)
downloadATCD-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.cpp9
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)