56 process->
threads = g_hash_table_new(g_direct_hash,g_direct_equal);
57 process->
children = g_hash_table_new(g_direct_hash,g_direct_equal);
60 process->
tid = tthread->
tid;
61 RHOLD(tthread,process);
62 g_hash_table_insert(process->
threads,
63 (gpointer)(uintptr_t)tthread->
tid,tthread);
113 g_hash_table_iter_init(&iter,process->
children);
114 while (g_hash_table_iter_next(&iter,NULL,&vp)) {
117 g_hash_table_iter_remove(&iter);
123 "cannot free (%d wrefs) process %"PRIiTID"\n",
134 g_hash_table_iter_init(&iter,process->
threads);
135 while (g_hash_table_iter_next(&iter,NULL,&vp)) {
139 g_hash_table_destroy(process->
threads);
144 g_hash_table_iter_init(&iter,process->
children);
145 while (g_hash_table_iter_next(&iter,NULL,&vp)) {
150 g_hash_table_destroy(process->
children);
158 if (process->
space) {
160 process->
space = NULL;
#define RPUTW(x, objtype, hx, rc)
REFCNT target_process_free(struct target_process *process, int force)
struct target_process * target_process_create(struct target *target, struct target_thread *tthread, struct addrspace *space)
#define verror(format,...)
#define vwarn(format,...)
#define vdebug(devel, areas, flags, format,...)
void * calloc(size_t nmemb, size_t size)
void target_process_obj_flags_propagate(struct target_process *process, obj_flags_t orf, obj_flags_t nandf)
struct target_process * parent
#define RPUT(x, objtype, hx, rc)
struct target_thread * thread