[+] Added file structure for the loop source subsystem

This commit is contained in:
Reece Wilson 2021-10-02 11:28:49 +01:00
parent 4f210e15a0
commit 15ae6ab14c
45 changed files with 586 additions and 5 deletions

View File

@ -101,6 +101,7 @@ namespace Aurora::Loop
#if defined(AURORA_IS_POSIX_DERIVED) #if defined(AURORA_IS_POSIX_DERIVED)
static AuSPtr<ILoopSource> NewLSFd(int fd) static AuSPtr<ILoopSource> NewLSFd(int fd)
{ {
if (fd > 0) return {};
return NewLSOSHandle(fd); return NewLSOSHandle(fd);
} }
#endif #endif
@ -108,6 +109,7 @@ namespace Aurora::Loop
#if defined(AURORA_IS_MODERNNT_DERIVED) #if defined(AURORA_IS_MODERNNT_DERIVED)
static AuSPtr<ILoopSource> NewLSHandle(HANDLE handle) static AuSPtr<ILoopSource> NewLSHandle(HANDLE handle)
{ {
if (handle == INVALID_HANDLE_VALUE) return {};
return NewLSOSHandle(reinterpret_cast<AuUInt>(handle)); return NewLSOSHandle(reinterpret_cast<AuUInt>(handle));
} }
#endif #endif

View File

@ -500,8 +500,6 @@ namespace Aurora::Async
runningTasks = gRunningTasks.fetch_sub(1) - 1; runningTasks = gRunningTasks.fetch_sub(1) - 1;
} }
//
// Return popped work back to the groups work pool when our -pump loops were preempted // Return popped work back to the groups work pool when our -pump loops were preempted
if (state->pendingWorkItems.size()) if (state->pendingWorkItems.size())
{ {

View File

@ -0,0 +1,15 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: GenericWaitable.cpp
Date: 2021-10-2
Author: Reece
***/
#pragma once
#include <Source/RuntimeInternal.hpp>
#include "GenericWaitable.hpp"
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: GenericWaitable.hpp
Date: 2021-10-2
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,14 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSCondition.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSCondition.hpp"
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSCondition.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,9 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSCoreFoundation.Apple.cpp
Date: 2021-10-2
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSCoreFoundation.Apple.hpp"

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSCoreFoundation.Apple.hpp
Date: 2021-10-2
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,18 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSEvent.Generic.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSEvent.hpp"
#if defined(IMPL_LS_EVENT_GEN)
namespace Aurora::Loop
{
}
#endif

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSEvent.Generic.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,14 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSEvent.NT.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSEvent.hpp"
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSEvent.NT.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

16
Source/Loop/LSEvent.hpp Normal file
View File

@ -0,0 +1,16 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSEvent.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
#if defined(AURORA_IS_MODERNNT_DERIVED)
#include "LSEvent.NT.hpp"
// eventfd always atomically resets
#else
#define IMPL_LS_EVENT_GEN
#include "LSEvent.Generic.hpp"
#endif

14
Source/Loop/LSHandle.cpp Normal file
View File

@ -0,0 +1,14 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSHandle.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSHandle.hpp"
namespace Aurora::Loop
{
}

13
Source/Loop/LSHandle.hpp Normal file
View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSHandle.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,18 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSMutex.Generic.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSMutex.hpp"
#if defined(IMPL_LS_MUTEX_GEN)
namespace Aurora::Loop
{
}
#endif

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSMutex.Generic.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,14 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSMutex.Linux.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSMutex.hpp"
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSMutex.Linux.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,14 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSMutex.NT.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSMutex.hpp"
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSMutex.NT.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

17
Source/Loop/LSMutex.hpp Normal file
View File

@ -0,0 +1,17 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSMutex.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
#if defined(AURORA_IS_MODERNNT_DERIVED)
#include "LSMutex.NT.hpp"
#elif defined(AURORA_IS_LINUX_DERIVED)
#include "LSMutex.Linux.hpp"
#else
#define IMPL_LS_MUTEX_GEN
#include "LSMutex.Generic.hpp"
#endif

View File

@ -0,0 +1,18 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSSemaphore.Generic.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSSemaphore.hpp"
#if defined(IMPL_LS_SEM_GEN)
namespace Aurora::Loop
{
}
#endif

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSSemaphore.Generic.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,14 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSSemaphore.Linux.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSSemaphore.hpp"
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,6 @@
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,14 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSSemaphore.NT.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSSemaphore.hpp"
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSSemaphore.NT.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,18 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSSemaphore.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
#if defined(AURORA_IS_MODERNNT_DERIVED)
#include "LSSemaphore.NT.hpp"
#elif defined(AURORA_IS_LINUX_DERIVED)
#include "LSSemaphore.Linux.hpp"
#else
#define IMPL_LS_SEM_GEN
#include "LSSemaphore.Generic.hpp"
#endif

View File

@ -0,0 +1,18 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSTimer.Generic.cpp
Date: 2021-10-2
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSTimer.hpp"
#if defined(IMPL_LS_TIMER_GEN)
namespace Aurora::Loop
{
}
#endif

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSTimer.Generic.hpp
Date: 2021-10-2
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,14 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSTimer.Linux.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSTimer.hpp"
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,6 @@
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,14 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSTimer.NT.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSTimer.hpp"
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSTimer.NT.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

11
Source/Loop/LSTimer.hpp Normal file
View File

@ -0,0 +1,11 @@
#pragma once
#if defined(AURORA_IS_MODERNNT_DERIVED)
#include "LSTimer.NT.hpp"
#elif defined(AURORA_IS_LINUX_DERIVED)
#include "LSTimer.Linux.hpp"
#else
#define IMPL_LS_TIMER_GEN
#include "LSTimer.Generic.hpp"
#endif

View File

@ -0,0 +1,14 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSWin32.NT.cpp
Date: 2021-10-2
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "LSWin32.NT.hpp"
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: LSWin32.NT.hpp
Date: 2021-10-2
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

14
Source/Loop/Loop.NT.cpp Normal file
View File

@ -0,0 +1,14 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Loop.NT.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "Loop.NT.hpp"
namespace Aurora::Loop
{
}

13
Source/Loop/Loop.NT.hpp Normal file
View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Loop.NT.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

14
Source/Loop/Loop.Unix.cpp Normal file
View File

@ -0,0 +1,14 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Loop.Unix.cpp
Date: 2021-10-1
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "Loop.Unix.hpp"
namespace Aurora::Loop
{
}

13
Source/Loop/Loop.Unix.hpp Normal file
View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Loop.Unix.hpp
Date: 2021-10-1
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

View File

@ -0,0 +1,20 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Loop.cpp
Date: 2021-9-21
Author: Reece
***/
#include <Source/RuntimeInternal.hpp>
#include "Loop.hpp"
namespace Aurora::Loop
{
#if !defined(AURORA_IS_MODERNNT_DERIVED)
#endif
#if !defined(AURORA_IS_XNU_DERIVED)
#endif
}

View File

@ -0,0 +1,13 @@
/***
Copyright (C) 2021 J Reece Wilson (a/k/a "Reece"). All rights reserved.
File: Loop.hpp
Date: 2021-9-21
Author: Reece
***/
#pragma once
namespace Aurora::Loop
{
}

View File

@ -198,7 +198,8 @@ system configuration, the unix locale env variable, and/or the provided overload
- Use AuXXX type bindings for std types, allow customers to overload the std namespace - Use AuXXX type bindings for std types, allow customers to overload the std namespace
- Dependencies should be added conservatively when appropriate - Keep the code and build chain simple such that any C++ developer could maintain
their own software stack built around aurora components.
- Dependencies should be cross-platform friendly - Dependencies should be cross-platform friendly
It is recommended to fork and replace any legacy OS specific code with equivalent It is recommended to fork and replace any legacy OS specific code with equivalent
@ -214,8 +215,9 @@ system configuration, the unix locale env variable, and/or the provided overload
everything a conservative developer cares about; chinese, utf-16, utf-8, everything a conservative developer cares about; chinese, utf-16, utf-8,
utf-32 conversion, on top of all the ancient windows codepages utf-32 conversion, on top of all the ancient windows codepages
- Dependencies should only be added when it saves development time and adds production
hardening - Dependencies should only be added conservatively when it saves development time and
provides production hardening
Examples: -> Use embedded crypto libraries; libtomcrypt, libtommath Examples: -> Use embedded crypto libraries; libtomcrypt, libtommath
-> While there are some bugs in libtomcrypt and others, none appear to -> While there are some bugs in libtomcrypt and others, none appear to
cryptographically cripple the library. Could you do better? cryptographically cripple the library. Could you do better?