Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
caaf5345
Commit
caaf5345
authored
Mar 20, 2007
by
Nathan Sidwell
Committed by
Nathan Sidwell
Mar 20, 2007
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
From-SVN: r123086
parent
2b312005
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
2 deletions
+18
-2
gcc/ChangeLog
+4
-0
gcc/config/vxlib-tls.c
+14
-2
No files found.
gcc/ChangeLog
View file @
caaf5345
2007-03-20 Nathan Sidwell <nathan@codesourcery.com>
* config/vxlib.c (tls_delete_hook): Use TCB for kernel tasks.
2007-03-19 Andrew Haley <aph@redhat.com>
2007-03-19 Andrew Haley <aph@redhat.com>
PR tree-optimization/31264
PR tree-optimization/31264
...
...
gcc/config/vxlib-tls.c
View file @
caaf5345
...
@@ -155,9 +155,18 @@ static __gthread_once_t tls_init_guard = __GTHREAD_ONCE_INIT;
...
@@ -155,9 +155,18 @@ static __gthread_once_t tls_init_guard = __GTHREAD_ONCE_INIT;
static
void
static
void
tls_delete_hook
(
void
*
tcb
ATTRIBUTE_UNUSED
)
tls_delete_hook
(
void
*
tcb
ATTRIBUTE_UNUSED
)
{
{
struct
tls_data
*
data
=
__gthread_get_tls_data
()
;
struct
tls_data
*
data
;
__gthread_key_t
key
;
__gthread_key_t
key
;
#ifdef __RTP__
data
=
__gthread_get_tls_data
();
#else
/* In kernel mode, we can be called in the context of the thread
doing the killing, so must use the TCB to determine the data of
the thread being killed. */
data
=
__gthread_get_tsd_data
(
tcb
);
#endif
if
(
data
&&
data
->
owner
==
&
self_owner
)
if
(
data
&&
data
->
owner
==
&
self_owner
)
{
{
__gthread_enter_tls_dtor_context
();
__gthread_enter_tls_dtor_context
();
...
@@ -182,8 +191,11 @@ tls_delete_hook (void *tcb ATTRIBUTE_UNUSED)
...
@@ -182,8 +191,11 @@ tls_delete_hook (void *tcb ATTRIBUTE_UNUSED)
taskDeleteHookDelete
((
FUNCPTR
)
tls_delete_hook
);
taskDeleteHookDelete
((
FUNCPTR
)
tls_delete_hook
);
__gthread_mutex_unlock
(
&
tls_lock
);
__gthread_mutex_unlock
(
&
tls_lock
);
}
}
#ifdef __RTP__
__gthread_set_tls_data
(
0
);
__gthread_set_tls_data
(
0
);
#else
__gthread_set_tsd_data
(
tcb
,
0
);
#endif
__gthread_leave_tls_dtor_context
();
__gthread_leave_tls_dtor_context
();
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment