forked from OSchip/llvm-project
Cleanup: memory leaks on warnings printing fixed; some memory freeing cleaned; poor indents and one typo fixed.
Patch by Victor Campos. Differential Revision: https://reviews.llvm.org/D26786 llvm-svn: 288054
This commit is contained in:
parent
0ee250eee8
commit
bcadbd6302
|
@ -566,11 +566,10 @@ __kmp_env_blk_free(
|
|||
) {
|
||||
|
||||
KMP_INTERNAL_FREE( (void *) block->vars );
|
||||
KMP_INTERNAL_FREE( (void *) block->bulk );
|
||||
__kmp_str_free(&(block->bulk));
|
||||
|
||||
block->count = 0;
|
||||
block->vars = NULL;
|
||||
block->bulk = NULL;
|
||||
|
||||
} // __kmp_env_blk_free
|
||||
|
||||
|
|
|
@ -109,13 +109,13 @@ __kmp_i18n_do_catopen(
|
|||
KMP_DEBUG_ASSERT( cat == KMP_I18N_NULLCAT );
|
||||
|
||||
english =
|
||||
lang == NULL || // In all these cases English language is used.
|
||||
strcmp( lang, "" ) == 0 ||
|
||||
lang == NULL || // In all these cases English language is used.
|
||||
strcmp( lang, "" ) == 0 ||
|
||||
strcmp( lang, " " ) == 0 ||
|
||||
// Workaround for Fortran RTL bug DPD200137873 "Fortran runtime resets LANG env var
|
||||
// to space if it is not set".
|
||||
strcmp( lang, "C" ) == 0 ||
|
||||
strcmp( lang, "POSIX" ) == 0;
|
||||
// Workaround for Fortran RTL bug DPD200137873 "Fortran runtime resets LANG env var
|
||||
// to space if it is not set".
|
||||
strcmp( lang, "C" ) == 0 ||
|
||||
strcmp( lang, "POSIX" ) == 0;
|
||||
|
||||
if ( ! english ) { // English language is not yet detected, let us continue.
|
||||
// Format of LANG is: [language[_territory][.codeset][@modifier]]
|
||||
|
@ -132,8 +132,8 @@ __kmp_i18n_do_catopen(
|
|||
// Do not try to open English catalog because internal messages are
|
||||
// exact copy of messages in English catalog.
|
||||
if ( english ) {
|
||||
status = KMP_I18N_ABSENT; // mark catalog as absent so it will not be re-opened.
|
||||
return;
|
||||
status = KMP_I18N_ABSENT; // mark catalog as absent so it will not be re-opened.
|
||||
return;
|
||||
}
|
||||
|
||||
cat = catopen( name, 0 );
|
||||
|
@ -141,36 +141,41 @@ __kmp_i18n_do_catopen(
|
|||
status = ( cat == KMP_I18N_NULLCAT ? KMP_I18N_ABSENT : KMP_I18N_OPENED );
|
||||
|
||||
if ( status == KMP_I18N_ABSENT ) {
|
||||
if (__kmp_generate_warnings > kmp_warnings_low) { // AC: only issue warning in case explicitly asked to
|
||||
int error = errno; // Save errno immediately.
|
||||
char * nlspath = __kmp_env_get( "NLSPATH" );
|
||||
char * lang = __kmp_env_get( "LANG" );
|
||||
if (__kmp_generate_warnings > kmp_warnings_low) { // AC: only issue warning in case explicitly asked to
|
||||
int error = errno; // Save errno immediately.
|
||||
char * nlspath = __kmp_env_get( "NLSPATH" );
|
||||
char * lang = __kmp_env_get( "LANG" );
|
||||
|
||||
// Infinite recursion will not occur -- status is KMP_I18N_ABSENT now, so
|
||||
// __kmp_i18n_catgets() will not try to open catalog, but will return default message.
|
||||
__kmp_msg(
|
||||
kmp_ms_warning,
|
||||
KMP_MSG( CantOpenMessageCatalog, name ),
|
||||
KMP_ERR( error ),
|
||||
KMP_HNT( CheckEnvVar, "NLSPATH", nlspath ),
|
||||
KMP_HNT( CheckEnvVar, "LANG", lang ),
|
||||
__kmp_msg_null
|
||||
);
|
||||
KMP_INFORM( WillUseDefaultMessages );
|
||||
KMP_INTERNAL_FREE( nlspath );
|
||||
KMP_INTERNAL_FREE( lang );
|
||||
}
|
||||
// Infinite recursion will not occur -- status is KMP_I18N_ABSENT now, so
|
||||
// __kmp_i18n_catgets() will not try to open catalog, but will return default message.
|
||||
kmp_msg_t err_code = KMP_ERR( error );
|
||||
__kmp_msg(
|
||||
kmp_ms_warning,
|
||||
KMP_MSG( CantOpenMessageCatalog, name ),
|
||||
err_code,
|
||||
KMP_HNT( CheckEnvVar, "NLSPATH", nlspath ),
|
||||
KMP_HNT( CheckEnvVar, "LANG", lang ),
|
||||
__kmp_msg_null
|
||||
);
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
|
||||
KMP_INFORM( WillUseDefaultMessages );
|
||||
KMP_INTERNAL_FREE( nlspath );
|
||||
KMP_INTERNAL_FREE( lang );
|
||||
}
|
||||
} else { // status == KMP_I18N_OPENED
|
||||
|
||||
int section = get_section( kmp_i18n_prp_Version );
|
||||
int number = get_number( kmp_i18n_prp_Version );
|
||||
char const * expected = __kmp_i18n_default_table.sect[ section ].str[ number ];
|
||||
// Expected version of the catalog.
|
||||
// Expected version of the catalog.
|
||||
kmp_str_buf_t version; // Actual version of the catalog.
|
||||
__kmp_str_buf_init( & version );
|
||||
__kmp_str_buf_print( & version, "%s", catgets( cat, section, number, NULL ) );
|
||||
|
||||
// String returned by catgets is invalid after closing the catalog, so copy it.
|
||||
// String returned by catgets is invalid after closing the catalog, so copy it.
|
||||
if ( strcmp( version.str, expected ) != 0 ) {
|
||||
__kmp_i18n_catclose(); // Close bad catalog.
|
||||
status = KMP_I18N_ABSENT; // And mark it as absent.
|
||||
|
@ -317,7 +322,7 @@ kmp_i18n_table_free(
|
|||
table->size = 0;
|
||||
KMP_INTERNAL_FREE( (void *) table->sect );
|
||||
table->sect = NULL;
|
||||
} // kmp_i8n_table_free
|
||||
} // kmp_i18n_table_free
|
||||
|
||||
|
||||
void
|
||||
|
@ -325,7 +330,7 @@ __kmp_i18n_do_catopen(
|
|||
) {
|
||||
|
||||
LCID locale_id = GetThreadLocale();
|
||||
WORD lang_id = LANGIDFROMLCID( locale_id );
|
||||
WORD lang_id = LANGIDFROMLCID( locale_id );
|
||||
WORD primary_lang_id = PRIMARYLANGID( lang_id );
|
||||
kmp_str_buf_t path;
|
||||
|
||||
|
@ -337,8 +342,8 @@ __kmp_i18n_do_catopen(
|
|||
// Do not try to open English catalog because internal messages are
|
||||
// exact copy of messages in English catalog.
|
||||
if ( primary_lang_id == LANG_ENGLISH ) {
|
||||
status = KMP_I18N_ABSENT; // mark catalog as absent so it will not be re-opened.
|
||||
goto end;
|
||||
status = KMP_I18N_ABSENT; // mark catalog as absent so it will not be re-opened.
|
||||
goto end;
|
||||
}; // if
|
||||
|
||||
// Construct resource DLL name.
|
||||
|
@ -395,30 +400,35 @@ __kmp_i18n_do_catopen(
|
|||
|
||||
if ( status == KMP_I18N_ABSENT ) {
|
||||
if (__kmp_generate_warnings > kmp_warnings_low) { // AC: only issue warning in case explicitly asked to
|
||||
DWORD error = GetLastError();
|
||||
// Infinite recursion will not occur -- status is KMP_I18N_ABSENT now, so
|
||||
// __kmp_i18n_catgets() will not try to open catalog but will return default message.
|
||||
DWORD error = GetLastError();
|
||||
// Infinite recursion will not occur -- status is KMP_I18N_ABSENT now, so
|
||||
// __kmp_i18n_catgets() will not try to open catalog but will return default message.
|
||||
/*
|
||||
If message catalog for another architecture found (e.g. OpenMP RTL
|
||||
for IA-32 architecture opens libompui.dll for Intel(R) 64)
|
||||
Windows* OS returns error 193 (ERROR_BAD_EXE_FORMAT). However,
|
||||
FormatMessage fails to return a message for this error, so user
|
||||
will see:
|
||||
If message catalog for another architecture found (e.g. OpenMP RTL
|
||||
for IA-32 architecture opens libompui.dll for Intel(R) 64)
|
||||
Windows* OS returns error 193 (ERROR_BAD_EXE_FORMAT). However,
|
||||
FormatMessage fails to return a message for this error, so user
|
||||
will see:
|
||||
|
||||
OMP: Warning #2: Cannot open message catalog "1041\libompui.dll":
|
||||
OMP: System error #193: (No system error message available)
|
||||
OMP: Info #3: Default messages will be used.
|
||||
OMP: Warning #2: Cannot open message catalog "1041\libompui.dll":
|
||||
OMP: System error #193: (No system error message available)
|
||||
OMP: Info #3: Default messages will be used.
|
||||
|
||||
Issue a hint in this case to let cause of trouble more understandable.
|
||||
Issue a hint in this case to let cause of trouble more understandable.
|
||||
*/
|
||||
__kmp_msg(
|
||||
kmp_ms_warning,
|
||||
KMP_MSG( CantOpenMessageCatalog, path.str ),
|
||||
KMP_SYSERRCODE( error ),
|
||||
__kmp_msg_t err_code = KMP_SYSERRCODE(error);
|
||||
__kmp_msg(
|
||||
kmp_ms_warning,
|
||||
KMP_MSG( CantOpenMessageCatalog, path.str ),
|
||||
err_code,
|
||||
( error == ERROR_BAD_EXE_FORMAT ? KMP_HNT( BadExeFormat, path.str, KMP_ARCH_STR ) : __kmp_msg_null ),
|
||||
__kmp_msg_null
|
||||
);
|
||||
KMP_INFORM( WillUseDefaultMessages );
|
||||
__kmp_msg_null
|
||||
);
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
|
||||
KMP_INFORM( WillUseDefaultMessages );
|
||||
}
|
||||
} else { // status == KMP_I18N_OPENED
|
||||
|
||||
|
@ -824,7 +834,6 @@ sys_error(
|
|||
// XSI version of strerror_r.
|
||||
|
||||
int size = 2048;
|
||||
// TODO: Add checking result of malloc().
|
||||
char * buffer = (char *) KMP_INTERNAL_MALLOC( size );
|
||||
int rc;
|
||||
if (buffer == NULL) {
|
||||
|
@ -932,9 +941,9 @@ __kmp_msg(
|
|||
};
|
||||
}; // switch
|
||||
fmsg = __kmp_msg_format( format, message.num, message.str );
|
||||
KMP_INTERNAL_FREE( (void *) message.str );
|
||||
__kmp_str_free(&message.str);
|
||||
__kmp_str_buf_cat( & buffer, fmsg.str, fmsg.len );
|
||||
KMP_INTERNAL_FREE( (void *) fmsg.str );
|
||||
__kmp_str_free(&fmsg.str);
|
||||
|
||||
// Format other messages.
|
||||
va_start( args, message );
|
||||
|
@ -958,9 +967,9 @@ __kmp_msg(
|
|||
};
|
||||
}; // switch
|
||||
fmsg = __kmp_msg_format( format, message.num, message.str );
|
||||
KMP_INTERNAL_FREE( (void *) message.str );
|
||||
__kmp_str_free(&message.str);
|
||||
__kmp_str_buf_cat( & buffer, fmsg.str, fmsg.len );
|
||||
KMP_INTERNAL_FREE( (void *) fmsg.str );
|
||||
__kmp_str_free(&fmsg.str);
|
||||
}; // forever
|
||||
va_end( args );
|
||||
|
||||
|
|
|
@ -103,13 +103,21 @@ __itt_error_handler(
|
|||
switch ( err ) {
|
||||
case __itt_error_no_module : {
|
||||
char const * library = va_arg( args, char const * );
|
||||
#if KMP_OS_WINDOWS
|
||||
int sys_err = va_arg( args, int );
|
||||
__kmp_msg( kmp_ms_warning, KMP_MSG( IttLoadLibFailed, library ), KMP_SYSERRCODE( sys_err ), __kmp_msg_null );
|
||||
#else
|
||||
char const * sys_err = va_arg( args, char const * );
|
||||
__kmp_msg( kmp_ms_warning, KMP_MSG( IttLoadLibFailed, library ), KMP_SYSERRMESG( sys_err ), __kmp_msg_null );
|
||||
#endif
|
||||
#if KMP_OS_WINDOWS
|
||||
int sys_err = va_arg( args, int );
|
||||
kmp_msg_t err_code = KMP_SYSERRCODE( sys_err );
|
||||
__kmp_msg( kmp_ms_warning, KMP_MSG( IttLoadLibFailed, library ), err_code, __kmp_msg_null );
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
#else
|
||||
char const * sys_err = va_arg( args, char const * );
|
||||
kmp_msg_t err_code = KMP_SYSERRMESG( sys_err );
|
||||
__kmp_msg( kmp_ms_warning, KMP_MSG( IttLoadLibFailed, library ), err_code, __kmp_msg_null );
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
#endif
|
||||
} break;
|
||||
case __itt_error_no_symbol : {
|
||||
char const * library = va_arg( args, char const * );
|
||||
|
@ -130,12 +138,20 @@ __itt_error_handler(
|
|||
case __itt_error_cant_read_env : {
|
||||
char const * var = va_arg( args, char const * );
|
||||
int sys_err = va_arg( args, int );
|
||||
__kmp_msg( kmp_ms_warning, KMP_MSG( CantGetEnvVar, var ), KMP_ERR( sys_err ), __kmp_msg_null );
|
||||
kmp_msg_t err_code = KMP_ERR( sys_err );
|
||||
__kmp_msg( kmp_ms_warning, KMP_MSG( CantGetEnvVar, var ), err_code, __kmp_msg_null );
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
} break;
|
||||
case __itt_error_system : {
|
||||
char const * func = va_arg( args, char const * );
|
||||
int sys_err = va_arg( args, int );
|
||||
__kmp_msg( kmp_ms_warning, KMP_MSG( IttFunctionError, func ), KMP_SYSERRCODE( sys_err ), __kmp_msg_null );
|
||||
kmp_msg_t err_code = KMP_SYSERRCODE( sys_err );
|
||||
__kmp_msg( kmp_ms_warning, KMP_MSG( IttFunctionError, func ), err_code, __kmp_msg_null );
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
} break;
|
||||
default : {
|
||||
KMP_WARNING( IttUnknownError, err );
|
||||
|
|
|
@ -360,7 +360,7 @@ __kmp_stg_parse_str(
|
|||
char const * value,
|
||||
char const * * out
|
||||
) {
|
||||
KMP_INTERNAL_FREE( (void *) * out );
|
||||
__kmp_str_free(out);
|
||||
* out = __kmp_str_format( "%s", value );
|
||||
} // __kmp_stg_parse_str
|
||||
#endif
|
||||
|
@ -418,12 +418,12 @@ __kmp_stg_parse_file(
|
|||
char buffer[256];
|
||||
char *t;
|
||||
int hasSuffix;
|
||||
KMP_INTERNAL_FREE( (void *) * out );
|
||||
__kmp_str_free(out);
|
||||
t = (char *) strrchr(value, '.');
|
||||
hasSuffix = t && __kmp_str_eqf( t, suffix );
|
||||
t = __kmp_str_format( "%s%s", value, hasSuffix ? "" : suffix );
|
||||
__kmp_expand_file_name( buffer, sizeof(buffer), t);
|
||||
KMP_INTERNAL_FREE(t);
|
||||
__kmp_str_free(&t);
|
||||
* out = __kmp_str_format( "%s", buffer );
|
||||
} // __kmp_stg_parse_file
|
||||
#endif
|
||||
|
@ -2235,7 +2235,7 @@ __kmp_parse_affinity_env( char const * name, char const * value,
|
|||
#undef set_respect
|
||||
#undef set_granularity
|
||||
|
||||
KMP_INTERNAL_FREE( buffer );
|
||||
__kmp_str_free((const char **) &buffer);
|
||||
|
||||
if ( proclist ) {
|
||||
if ( ! type ) {
|
||||
|
|
|
@ -420,8 +420,7 @@ __kmp_str_loc_free(
|
|||
kmp_str_loc_t * loc
|
||||
) {
|
||||
__kmp_str_fname_free( & loc->fname );
|
||||
KMP_INTERNAL_FREE( loc->_bulk );
|
||||
loc->_bulk = NULL;
|
||||
__kmp_str_free((const char **) &(loc->_bulk));
|
||||
loc->file = NULL;
|
||||
loc->func = NULL;
|
||||
} // kmp_str_loc_free
|
||||
|
@ -478,8 +477,6 @@ __kmp_str_eqf( // True, if strings are equal, false otherwise.
|
|||
So standard malloc() is the only available option.
|
||||
*/
|
||||
|
||||
// TODO: Find and replace all regular free() with __kmp_str_free().
|
||||
|
||||
char *
|
||||
__kmp_str_format( // Allocated string.
|
||||
char const * format, // Format string.
|
||||
|
|
|
@ -165,12 +165,16 @@ __kmp_affinity_determine_capable(const char *env_var)
|
|||
&& (__kmp_affinity_type != affinity_default)
|
||||
&& (__kmp_affinity_type != affinity_disabled))) {
|
||||
int error = errno;
|
||||
kmp_msg_t err_code = KMP_ERR( error );
|
||||
__kmp_msg(
|
||||
kmp_ms_warning,
|
||||
KMP_MSG( GetAffSysCallNotSupported, env_var ),
|
||||
KMP_ERR( error ),
|
||||
err_code,
|
||||
__kmp_msg_null
|
||||
);
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
}
|
||||
KMP_AFFINITY_DISABLE();
|
||||
KMP_INTERNAL_FREE(buf);
|
||||
|
@ -193,12 +197,16 @@ __kmp_affinity_determine_capable(const char *env_var)
|
|||
&& (__kmp_affinity_type != affinity_default)
|
||||
&& (__kmp_affinity_type != affinity_disabled))) {
|
||||
int error = errno;
|
||||
kmp_msg_t err_code = KMP_ERR( error );
|
||||
__kmp_msg(
|
||||
kmp_ms_warning,
|
||||
KMP_MSG( SetAffSysCallNotSupported, env_var ),
|
||||
KMP_ERR( error ),
|
||||
err_code,
|
||||
__kmp_msg_null
|
||||
);
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
}
|
||||
KMP_AFFINITY_DISABLE();
|
||||
KMP_INTERNAL_FREE(buf);
|
||||
|
@ -241,12 +249,16 @@ __kmp_affinity_determine_capable(const char *env_var)
|
|||
&& (__kmp_affinity_type != affinity_default)
|
||||
&& (__kmp_affinity_type != affinity_disabled))) {
|
||||
int error = errno;
|
||||
kmp_msg_t err_code = KMP_ERR( error );
|
||||
__kmp_msg(
|
||||
kmp_ms_warning,
|
||||
KMP_MSG( GetAffSysCallNotSupported, env_var ),
|
||||
KMP_ERR( error ),
|
||||
err_code,
|
||||
__kmp_msg_null
|
||||
);
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
}
|
||||
KMP_AFFINITY_DISABLE();
|
||||
KMP_INTERNAL_FREE(buf);
|
||||
|
@ -272,12 +284,16 @@ __kmp_affinity_determine_capable(const char *env_var)
|
|||
&& (__kmp_affinity_type != affinity_default)
|
||||
&& (__kmp_affinity_type != affinity_disabled))) {
|
||||
int error = errno;
|
||||
kmp_msg_t err_code = KMP_ERR( error );
|
||||
__kmp_msg(
|
||||
kmp_ms_warning,
|
||||
KMP_MSG( SetAffSysCallNotSupported, env_var ),
|
||||
KMP_ERR( error ),
|
||||
err_code,
|
||||
__kmp_msg_null
|
||||
);
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
}
|
||||
KMP_AFFINITY_DISABLE();
|
||||
KMP_INTERNAL_FREE(buf);
|
||||
|
@ -710,13 +726,17 @@ __kmp_launch_monitor( void *thr )
|
|||
rc = sched_setscheduler( 0, sched, & param );
|
||||
if ( rc != 0 ) {
|
||||
int error = errno;
|
||||
__kmp_msg(
|
||||
kmp_ms_warning,
|
||||
KMP_MSG( CantChangeMonitorPriority ),
|
||||
KMP_ERR( error ),
|
||||
KMP_MSG( MonitorWillStarve ),
|
||||
__kmp_msg_null
|
||||
);
|
||||
kmp_msg_t err_code = KMP_ERR( error );
|
||||
__kmp_msg(
|
||||
kmp_ms_warning,
|
||||
KMP_MSG( CantChangeMonitorPriority ),
|
||||
err_code,
|
||||
KMP_MSG( MonitorWillStarve ),
|
||||
__kmp_msg_null
|
||||
);
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
}; // if
|
||||
} else {
|
||||
// We cannot abort here, because number of CPUs may be enough for all the threads,
|
||||
|
@ -959,7 +979,11 @@ __kmp_create_worker( int gtid, kmp_info_t *th, size_t stack_size )
|
|||
#ifdef KMP_THREAD_ATTR
|
||||
status = pthread_attr_destroy( & thread_attr );
|
||||
if ( status ) {
|
||||
__kmp_msg(kmp_ms_warning, KMP_MSG( CantDestroyThreadAttrs ), KMP_ERR( status ), __kmp_msg_null);
|
||||
kmp_msg_t err_code = KMP_ERR( status );
|
||||
__kmp_msg(kmp_ms_warning, KMP_MSG( CantDestroyThreadAttrs ), err_code, __kmp_msg_null);
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
}; // if
|
||||
#endif /* KMP_THREAD_ATTR */
|
||||
|
||||
|
@ -1055,13 +1079,17 @@ __kmp_create_monitor( kmp_info_t *th )
|
|||
__kmp_monitor_stksize *= 2;
|
||||
goto retry;
|
||||
}
|
||||
kmp_msg_t err_code = KMP_ERR( status );
|
||||
__kmp_msg(
|
||||
kmp_ms_warning, // should this be fatal? BB
|
||||
KMP_MSG( CantSetMonitorStackSize, (long int) __kmp_monitor_stksize ),
|
||||
KMP_ERR( status ),
|
||||
err_code,
|
||||
KMP_HNT( ChangeMonitorStackSize ),
|
||||
__kmp_msg_null
|
||||
);
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
}; // if
|
||||
#endif /* _POSIX_THREAD_ATTR_STACKSIZE */
|
||||
|
||||
|
@ -1117,12 +1145,16 @@ __kmp_create_monitor( kmp_info_t *th )
|
|||
#ifdef KMP_THREAD_ATTR
|
||||
status = pthread_attr_destroy( & thread_attr );
|
||||
if ( status != 0 ) {
|
||||
__kmp_msg( //
|
||||
kmp_msg_t err_code = KMP_ERR( status );
|
||||
__kmp_msg(
|
||||
kmp_ms_warning,
|
||||
KMP_MSG( CantDestroyThreadAttrs ),
|
||||
KMP_ERR( status ),
|
||||
err_code,
|
||||
__kmp_msg_null
|
||||
);
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
}; // if
|
||||
#endif
|
||||
|
||||
|
|
|
@ -560,12 +560,16 @@ __kmp_affinity_bind_thread( int proc )
|
|||
if (__kmp_SetThreadGroupAffinity(GetCurrentThread(), &ga, NULL) == 0) {
|
||||
DWORD error = GetLastError();
|
||||
if (__kmp_affinity_verbose) { // AC: continue silently if not verbose
|
||||
kmp_msg_t err_code = KMP_ERR( error );
|
||||
__kmp_msg(
|
||||
kmp_ms_warning,
|
||||
KMP_MSG( CantSetThreadAffMask ),
|
||||
KMP_ERR( error ),
|
||||
err_code,
|
||||
__kmp_msg_null
|
||||
);
|
||||
if (__kmp_generate_warnings == kmp_warnings_off) {
|
||||
__kmp_str_free(&err_code.str);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue