This file is indexed.

/usr/include/gpsim/ttoken.h is in gpsim-dev 0.29.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 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
55
56
57
58
59
60
61
62
63
64
65
66
/*
   Copyright (C) 2004 T. Scott Dattalo

This file is part of the libgpsim library of gpsim

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, see 
<http://www.gnu.org/licenses/lgpl-2.1.html>.
*/

#if !defined(__TTOKEN_H__)
#define __TTOKEN_H__

namespace gpsim {

  /// Token - a class used to synchronize two threads.
  /// Token will spawn a new thread and keep it synchronized
  /// with the thread that called it. In gpsim, the simulation
  /// engine is a single thread application. However, it's 
  /// sometimes quite difficult to implement modules within the
  /// context of this thread. So modules that are instantiated
  /// from within the context of the simulator can use the Token
  /// class to spawn a new thread.
  /// 
  /// Note - the underlying implementation depends on pthreads.
  /// However, that implementation is completely hidden with an
  /// opaque pointer to the PThreadWrapper object. This way,
  /// if it turns out that pthreads are not installed or there's
  /// another implementation preferred for the synchronization
  /// then it's easy to change with impacting the whole system.

  struct ThreadWrapper;

  class Token
  {
  public:
    Token();

    /// Initialize - a wrapper for pthread create.

    void Initialize(void *(*child) (void *), void *data);

    /// 
    void waitForChild();
    void passToChild();
    void passToParent();
    void grab();

  private:

    ThreadWrapper *thread;
  };

} // end of namespace gpsim

#endif // !defined(__TTOKEN_H__)