The Pedigree Project
0.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
src
system
kernel
time
Concurrent.cc
1
/*
2
* Copyright (c) 2008-2014, Pedigree Developers
3
*
4
* Please see the CONTRIB file in the root of the source tree for a full
5
* list of contributors.
6
*
7
* Permission to use, copy, modify, and distribute this software for any
8
* purpose with or without fee is hereby granted, provided that the above
9
* copyright notice and this permission notice appear in all copies.
10
*
11
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18
*/
19
20
#include "pedigree/kernel/time/Time.h"
21
#include "pedigree/kernel/utilities/pocketknife.h"
22
23
namespace
Time
24
{
25
struct
runAfterParams
26
{
27
int (*func)(
void
*);
28
void
*param;
29
Timestamp
duration;
30
};
31
32
static
int
runAfterThread(
void
*param)
33
{
34
runAfterParams
*p =
reinterpret_cast<
runAfterParams
*
>
(param);
35
if
(!delay(p->duration))
36
{
37
return
0;
38
}
39
return
p->func(p->param);
40
}
41
42
void
runAfter(
int
(*func)(
void
*),
void
*param,
Timestamp
nanoseconds)
43
{
44
runAfterParams
*p =
new
runAfterParams
;
45
p->func = func;
46
p->param = param;
47
p->duration = nanoseconds;
48
pocketknife::runConcurrently
(runAfterThread, p);
49
}
50
}
// namespace Time
pocketknife::runConcurrently
EXPORTED_PUBLIC void runConcurrently(int(*func)(void *), void *param)
Definition:
pocketknife.cc:29
Time::runAfterParams
Definition:
Concurrent.cc:25
Timestamp
Definition:
fat.h:143
Time
Definition:
Stopwatch.h:25
Generated on Fri Jan 24 2020 06:46:12 for The Pedigree Project by
1.8.11