VeraCrypt
aboutsummaryrefslogtreecommitdiff
path: root/src/Platform/Unix/Thread.cpp
blob: 7afe683221e790aa36309c7370bd25926e86d970 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
 Copyright (c) 2008 TrueCrypt Developers Association. All rights reserved.

 Governed by the TrueCrypt License 3.0 the full text of which is contained in
 the file License.txt included in TrueCrypt binary and source code distribution
 packages.
*/

#include <pthread.h>
#include <unistd.h>
#include "Platform/SystemException.h"
#include "Platform/Thread.h"
#include "Platform/SystemLog.h"

namespace TrueCrypt
{
	void Thread::Join () const
	{
		int status = pthread_join (SystemHandle, nullptr);
		if (status != 0)
			throw SystemException (SRC_POS, status);
	}

	void Thread::Start (ThreadProcPtr threadProc, void *parameter)
	{
		pthread_attr_t attr;
		size_t stackSize = 0;
		int status;

		status = pthread_attr_init (&attr);
		if (status != 0)
			throw SystemException (SRC_POS, status);

		status = pthread_attr_getstacksize (&attr, &stackSize);
		if (status != 0)
			throw SystemException (SRC_POS, status);

		if (stackSize < MinThreadStackSize)
		{
			status = pthread_attr_setstacksize (&attr, MinThreadStackSize);
			if (status != 0)
				throw SystemException (SRC_POS, status);
		}

		status = pthread_create (&SystemHandle, nullptr, threadProc, parameter);
		if (status != 0)
			throw SystemException (SRC_POS, status);
	}

	void Thread::Sleep (uint32 milliSeconds)
	{
		::usleep (milliSeconds * 1000);
	}
}
pan>="Donation.html">Поддержать разработку</a></li> <li><a href="https://sourceforge.net/p/veracrypt/discussion/" target="_blank">Форум</a></li> </ul> </div> <div> <p> <a href="Documentation.html">Документация</a> <img src="arrow_right.gif" alt=">>" style="margin-top: 5px"> <a href="Converting%20TrueCrypt%20volumes%20and%20partitions.html">Преобразование томов и разделов TrueCrypt в формат VeraCrypt</a> </p></div> <div class="wikidoc"> <h1>Преобразование томов и разделов TrueCrypt в формат VeraCrypt</h1> <p>Начиная с версии <b>1.0f</b> и до версии <b>1.25.9</b> включительно, в VeraCrypt можно преобразовывать тома и <i>несистемные</i> разделы TrueCrypt (созданные версиями 6.x и 7.x) в формат VeraCrypt. Для этого выполните с томом или разделом любое из следующих действий:</p> <ul> <li>Измените пароль тома</li> <li>Задайте алгоритм формирования ключа заголовка</li> <li>Добавьте или удалите ключевые файлы</li> <li>Удалите все ключевые файлы</li></ul> <p>При этом должна быть включена опция <i>Режим TrueCrypt</i>, как показано на иллюстрации:</p> <p>&nbsp;<img src="Converting TrueCrypt volumes and partitions_truecrypt_convertion.png" alt=""></p> <p><strong>Примечание.</strong> Преобразование <i>системных</i> разделов, зашифрованных с помощью TrueCrypt, не поддерживается.</p> </div><div class="ClearBoth"></div></body></html>