Проблема с потоками

Тема в разделе "WASM.WIN32", создана пользователем SysProger, 20 мар 2008.

  1. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    n0name
    так он это и написал)
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Я был не прав на счёт памяти под TEB;
    Если не текущий поток прибивается посредством ZwTerminateThread, память под стек и TEB не освобождается;
    Если текужий поток завершает управление посредством ZwTerminateThread, то в зависимости от TEB.FreeStackOnTermination память TEB и потока освобождается (TEB.FreeStackOnTermination=TRUE), либо нет(TEB.FreeStackOnTermination=FALSE).
     
  3. asmfan

    asmfan New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2006
    Сообщения:
    1.004
    Адрес:
    Abaddon
    + там ещё ТЛС хранилище высвобождается, если присутстует. Вот, вроде, и все "освобождения"
     
  4. SysProger

    SysProger New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2007
    Сообщения:
    127
    SSS
    CloseHandle закрывает псевдоописатель, получаемый GetCurrentThread(). Реальный описатель можно получить с помощью GetCurrentThreadId(). Так что это Вы не читаете мануал.
     
  5. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    GetCurrentThread() возвращает псевдоописатель. Закрывать его смысла нет.

    Не описатель а Id, вещи разные. Описатель можно получить ф-ей Create(Open)Thread
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    asd
    и GetCurrentThread() :)

    SysProger
    Ты при всем своем желании его не закроешь, потому что его нет на самом деле.
     
  7. SysProger

    SysProger New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2007
    Сообщения:
    127
    Great
    Твоё решение изящно, но всё равно все дескрипторы не уничтожаются. Это видно в task manager'e. Я пробовал даже все их в массив загнать, а после выполнения всех потоков уничтожить(CloseHandle). Но эффект тот же.
     
  8. SSS

    SSS New Member

    Публикаций:
    0
    Регистрация:
    24 ноя 2003
    Сообщения:
    12
    SysProger
    Вы бы лучше привели свой кусок кода, чем спорить тут..
     
  9. SysProger

    SysProger New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2007
    Сообщения:
    127
    В этом вопросе я уже разобрался.
    Great
    спасибо за помощь

    спасибо остальным за активное участие
     
  10. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    SysProger
    у меня всё закрывается нормально ))