Skip to content

Commit 9ac62d5

Browse files
committed
O2: Remove obsolete functionality to build standalone benchmark without O2 sources
1 parent 5196ab7 commit 9ac62d5

File tree

72 files changed

+115
-712
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

72 files changed

+115
-712
lines changed

GPU/Common/CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ if(ALIGPU_BUILD_TYPE STREQUAL "O2")
3636
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}>
3737
$<INSTALL_INTERFACE:include/GPU>)
3838

39-
target_compile_definitions(${targetName} PRIVATE GPUCA_O2_LIB
40-
GPUCA_TPC_GEOMETRY_O2 GPUCA_HAVE_O2HEADERS)
39+
target_compile_definitions(${targetName} PRIVATE GPUCA_O2_LIB GPUCA_TPC_GEOMETRY_O2)
4140

4241
# cuda test, only compile if CUDA
4342
if(CUDA_ENABLED)

GPU/Common/GPUCommonDef.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,8 @@
4949
#elif defined(__CUDACC__) || defined(__HIPCC__)
5050
#define GPUCA_HAS_GLOBAL_SYMBOL_CONSTANT_MEM
5151
#endif
52-
#if !defined(GPUCA_HAVE_O2HEADERS) && (defined(GPUCA_O2_LIB) || !defined(GPUCA_STANDALONE))
53-
#define GPUCA_HAVE_O2HEADERS
54-
#endif
5552

56-
#if defined(GPUCA_HAVE_O2HEADERS) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_STANDALONE) && defined(DEBUG_STREAMER)
53+
#if !defined(GPUCA_GPUCODE) && !defined(GPUCA_STANDALONE) && defined(DEBUG_STREAMER)
5754
#define GPUCA_DEBUG_STREAMER_CHECK(...) __VA_ARGS__
5855
#else
5956
#define GPUCA_DEBUG_STREAMER_CHECK(...)

GPU/Common/GPUDebugStreamer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#define GPUDEBUGSTREAMER_H
1616

1717
#include "GPUCommonDef.h"
18-
#if defined(GPUCA_HAVE_O2HEADERS) && !defined(GPUCA_GPUCODE) && !defined(GPUCA_STANDALONE) && defined(DEBUG_STREAMER)
18+
#if !defined(GPUCA_GPUCODE) && !defined(GPUCA_STANDALONE) && defined(DEBUG_STREAMER)
1919
#include "CommonUtils/DebugStreamer.h"
2020
#endif
2121

GPU/GPUTracking/Base/GPUConstantMem.h

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,12 @@
2323
#include "GPUTPCGMMerger.h"
2424
#include "GPUTRDTracker.h"
2525

26-
// Dummies for stuff not suppored in legacy code, or for what requires O2 headers while not available
27-
#if defined(GPUCA_HAVE_O2HEADERS)
2826
#include "GPUTPCConvert.h"
2927
#include "GPUTPCCompression.h"
3028
#include "GPUTPCDecompression.h"
3129
#include "GPUITSFitter.h"
3230
#include "GPUTPCClusterFinder.h"
3331
#include "GPUTrackingRefit.h"
34-
#else
35-
#include "GPUO2FakeClasses.h"
36-
#endif
3732

3833
#ifdef GPUCA_KERNEL_DEBUGGER_OUTPUT
3934
#include "GPUKernelDebugOutput.h"
@@ -52,9 +47,7 @@ struct GPUConstantMem {
5247
GPUTPCDecompression tpcDecompressor;
5348
GPUTPCGMMerger tpcMerger;
5449
GPUTRDTrackerGPU trdTrackerGPU;
55-
#ifdef GPUCA_HAVE_O2HEADERS
5650
GPUTRDTracker trdTrackerO2;
57-
#endif
5851
GPUTPCClusterFinder tpcClusterer[GPUCA_NSLICES];
5952
GPUITSFitter itsFitter;
6053
GPUTrackingRefitProcessor trackingRefit;
@@ -65,19 +58,10 @@ struct GPUConstantMem {
6558
GPUKernelDebugOutput debugOutput;
6659
#endif
6760

68-
#if defined(GPUCA_HAVE_O2HEADERS)
6961
template <int32_t I>
7062
GPUd() auto& getTRDTracker();
71-
#else // GPUCA_HAVE_O2HEADERS
72-
template <int32_t I>
73-
GPUdi() GPUTRDTrackerGPU& getTRDTracker()
74-
{
75-
return trdTrackerGPU;
76-
}
77-
#endif // !GPUCA_HAVE_O2HEADERS
7863
};
7964

80-
#if defined(GPUCA_HAVE_O2HEADERS)
8165
template <>
8266
GPUdi() auto& GPUConstantMem::getTRDTracker<0>()
8367
{
@@ -88,7 +72,6 @@ GPUdi() auto& GPUConstantMem::getTRDTracker<1>()
8872
{
8973
return trdTrackerO2;
9074
}
91-
#endif
9275

9376
union GPUConstantMemCopyable {
9477
#if !defined(__OPENCL__) || defined(__OPENCL_HOST__)

GPU/GPUTracking/Base/GPUParam.cxx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,12 @@
2020
#include "GPUTPCGMPolynomialFieldManager.h"
2121
#include "GPUDataTypes.h"
2222
#include "GPUConstantMem.h"
23+
#include "DetectorsBase/Propagator.h"
2324

2425
using namespace o2::gpu;
2526

2627
#include <cstring>
2728
#include <tuple>
28-
#ifdef GPUCA_HAVE_O2HEADERS
29-
#include "DetectorsBase/Propagator.h"
30-
#endif
3129

3230
#include "utils/qconfigrtc.h"
3331

GPU/GPUTracking/Base/GPUReconstruction.cxx

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,7 @@ GPUReconstruction::GPUReconstruction(const GPUSettingsDeviceBackend& cfg) : mHos
9494
mMemoryScalers.reset(new GPUMemorySizeScalers);
9595
for (uint32_t i = 0; i < NSLICES; i++) {
9696
processors()->tpcTrackers[i].SetSlice(i); // TODO: Move to a better place
97-
#ifdef GPUCA_HAVE_O2HEADERS
9897
processors()->tpcClusterer[i].mISlice = i;
99-
#endif
10098
}
10199
#ifndef GPUCA_NO_ROOT
102100
mROOTDump = GPUROOTDumpCore::getAndCreate();
@@ -213,14 +211,6 @@ int32_t GPUReconstruction::InitPhaseBeforeDevice()
213211
}
214212
GPUConfigDump::dumpConfig(&param().rec, &mProcessingSettings, chTrk ? chTrk->GetQAConfig() : nullptr, chTrk ? chTrk->GetEventDisplayConfig() : nullptr, &mDeviceBackendSettings, &mRecoSteps);
215213
}
216-
#ifndef GPUCA_HAVE_O2HEADERS
217-
mRecoSteps.steps.setBits(RecoStep::ITSTracking, false);
218-
mRecoSteps.steps.setBits(RecoStep::TRDTracking, false);
219-
mRecoSteps.steps.setBits(RecoStep::TPCConversion, false);
220-
mRecoSteps.steps.setBits(RecoStep::TPCCompression, false);
221-
mRecoSteps.steps.setBits(RecoStep::TPCdEdx, false);
222-
mProcessingSettings.createO2Output = false;
223-
#endif
224214
mRecoSteps.stepsGPUMask &= mRecoSteps.steps;
225215
mRecoSteps.stepsGPUMask &= AvailableGPURecoSteps();
226216
if (!IsGPU()) {
@@ -258,7 +248,6 @@ int32_t GPUReconstruction::InitPhaseBeforeDevice()
258248
#ifndef GPUCA_NO_FAST_MATH
259249
GPUError("Warning, deterministicGPUReconstruction needs GPUCA_NO_FAST_MATH, otherwise results will never be deterministic!");
260250
#endif
261-
#ifdef GPUCA_HAVE_O2HEADERS
262251
mProcessingSettings.overrideClusterizerFragmentLen = TPC_MAX_FRAGMENT_LEN_GPU;
263252
param().rec.tpc.nWaysOuter = true;
264253
if (param().rec.tpc.looperInterpolationInExtraPass == -1) {
@@ -267,7 +256,6 @@ int32_t GPUReconstruction::InitPhaseBeforeDevice()
267256
if (mProcessingSettings.createO2Output > 1) {
268257
mProcessingSettings.createO2Output = 1;
269258
}
270-
#endif
271259
}
272260
if (mProcessingSettings.deterministicGPUReconstruction && mProcessingSettings.debugLevel >= 6) {
273261
mProcessingSettings.nTPCClustererLanes = 1;
@@ -347,7 +335,6 @@ int32_t GPUReconstruction::InitPhaseBeforeDevice()
347335
mNStreams = std::max<int32_t>(mProcessingSettings.nStreams, 3);
348336
}
349337

350-
#ifdef GPUCA_HAVE_O2HEADERS
351338
if (mProcessingSettings.nTPCClustererLanes == -1) {
352339
mProcessingSettings.nTPCClustererLanes = (GetRecoStepsGPU() & RecoStep::TPCClusterFinding) ? 3 : std::max<int32_t>(1, std::min<int32_t>(GPUCA_NSLICES, mProcessingSettings.ompKernels ? (mProcessingSettings.ompThreads >= 4 ? std::min<int32_t>(mProcessingSettings.ompThreads / 2, mProcessingSettings.ompThreads >= 32 ? GPUCA_NSLICES : 4) : 1) : mProcessingSettings.ompThreads));
353340
}
@@ -358,7 +345,6 @@ int32_t GPUReconstruction::InitPhaseBeforeDevice()
358345
GPUError("Invalid value for nTPCClustererLanes: %d", mProcessingSettings.nTPCClustererLanes);
359346
mProcessingSettings.nTPCClustererLanes = GPUCA_NSLICES;
360347
}
361-
#endif
362348

363349
if (mProcessingSettings.doublePipeline && (mChains.size() != 1 || mChains[0]->SupportsDoublePipeline() == false || !IsGPU() || mProcessingSettings.memoryAllocationStrategy != GPUMemoryResource::ALLOCATION_GLOBAL)) {
364350
GPUError("Must use double pipeline mode only with exactly one chain that must support it");

GPU/GPUTracking/Base/GPUReconstructionConvert.cxx

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
#include <algorithm>
3131
#include <vector>
3232

33-
#ifdef GPUCA_HAVE_O2HEADERS
3433
#include "clusterFinderDefs.h"
3534
#include "DataFormatsTPC/ZeroSuppression.h"
3635
#include "DataFormatsTPC/ZeroSuppressionLinkBased.h"
@@ -40,7 +39,6 @@
4039
#include "TPCBase/RDHUtils.h"
4140
#include "TPCBase/CRU.h"
4241
#include "DetectorsRaw/RDHUtils.h"
43-
#endif
4442

4543
using namespace o2::gpu;
4644
using namespace o2::tpc;
@@ -49,7 +47,6 @@ using namespace std::string_literals;
4947

5048
void GPUReconstructionConvert::ConvertNativeToClusterData(o2::tpc::ClusterNativeAccess* native, std::unique_ptr<GPUTPCClusterData[]>* clusters, uint32_t* nClusters, const TPCFastTransform* transform, int32_t continuousMaxTimeBin)
5149
{
52-
#ifdef GPUCA_HAVE_O2HEADERS
5350
memset(nClusters, 0, NSLICES * sizeof(nClusters[0]));
5451
uint32_t offset = 0;
5552
for (uint32_t i = 0; i < NSLICES; i++) {
@@ -83,12 +80,10 @@ void GPUReconstructionConvert::ConvertNativeToClusterData(o2::tpc::ClusterNative
8380
offset += native->nClusters[i][j];
8481
}
8582
}
86-
#endif
8783
}
8884

8985
void GPUReconstructionConvert::ConvertRun2RawToNative(o2::tpc::ClusterNativeAccess& native, std::unique_ptr<ClusterNative[]>& nativeBuffer, const AliHLTTPCRawCluster** rawClusters, uint32_t* nRawClusters)
9086
{
91-
#ifdef GPUCA_HAVE_O2HEADERS
9287
memset((void*)&native, 0, sizeof(native));
9388
for (uint32_t i = 0; i < NSLICES; i++) {
9489
for (uint32_t j = 0; j < nRawClusters[i]; j++) {
@@ -115,12 +110,10 @@ void GPUReconstructionConvert::ConvertRun2RawToNative(o2::tpc::ClusterNativeAcce
115110
c.qTot = org.GetCharge();
116111
}
117112
}
118-
#endif
119113
}
120114

121115
int32_t GPUReconstructionConvert::GetMaxTimeBin(const ClusterNativeAccess& native)
122116
{
123-
#ifdef GPUCA_HAVE_O2HEADERS
124117
float retVal = 0;
125118
for (uint32_t i = 0; i < NSLICES; i++) {
126119
for (uint32_t j = 0; j < GPUCA_ROW_COUNT; j++) {
@@ -132,14 +125,10 @@ int32_t GPUReconstructionConvert::GetMaxTimeBin(const ClusterNativeAccess& nativ
132125
}
133126
}
134127
return ceil(retVal);
135-
#else
136-
return 0;
137-
#endif
138128
}
139129

140130
int32_t GPUReconstructionConvert::GetMaxTimeBin(const GPUTrackingInOutDigits& digits)
141131
{
142-
#ifdef GPUCA_HAVE_O2HEADERS
143132
float retVal = 0;
144133
for (uint32_t i = 0; i < NSLICES; i++) {
145134
for (uint32_t k = 0; k < digits.nTPCDigits[i]; k++) {
@@ -149,14 +138,10 @@ int32_t GPUReconstructionConvert::GetMaxTimeBin(const GPUTrackingInOutDigits& di
149138
}
150139
}
151140
return ceil(retVal);
152-
#else
153-
return 0;
154-
#endif
155141
}
156142

157143
int32_t GPUReconstructionConvert::GetMaxTimeBin(const GPUTrackingInOutZS& zspages)
158144
{
159-
#ifdef GPUCA_HAVE_O2HEADERS
160145
float retVal = 0;
161146
for (uint32_t i = 0; i < NSLICES; i++) {
162147
int32_t firstHBF = zspages.slice[i].count[0] ? o2::raw::RDHUtils::getHeartBeatOrbit(*(const o2::header::RAWDataHeader*)zspages.slice[i].zsPtr[0][0]) : 0;
@@ -182,9 +167,6 @@ int32_t GPUReconstructionConvert::GetMaxTimeBin(const GPUTrackingInOutZS& zspage
182167
}
183168
}
184169
return ceil(retVal);
185-
#else
186-
return 0;
187-
#endif
188170
}
189171

190172
// ------------------------------------------------- TPC ZS -------------------------------------------------
@@ -1413,12 +1395,10 @@ void GPUReconstructionConvert::RunZSEncoder(const S& in, std::unique_ptr<uint64_
14131395
#endif
14141396
}
14151397

1416-
#ifdef GPUCA_HAVE_O2HEADERS
14171398
template void GPUReconstructionConvert::RunZSEncoder<GPUTrackingInOutDigits>(const GPUTrackingInOutDigits&, std::unique_ptr<uint64_t[]>*, uint32_t*, o2::raw::RawFileWriter*, const o2::InteractionRecord*, const GPUParam&, int32_t, bool, float, bool, std::function<void(std::vector<o2::tpc::Digit>&)> digitsFilter);
14181399
#ifdef GPUCA_O2_LIB
14191400
template void GPUReconstructionConvert::RunZSEncoder<DigitArray>(const DigitArray&, std::unique_ptr<uint64_t[]>*, uint32_t*, o2::raw::RawFileWriter*, const o2::InteractionRecord*, const GPUParam&, int32_t, bool, float, bool, std::function<void(std::vector<o2::tpc::Digit>&)> digitsFilter);
14201401
#endif
1421-
#endif
14221402

14231403
void GPUReconstructionConvert::RunZSEncoderCreateMeta(const uint64_t* buffer, const uint32_t* sizes, void** ptrs, GPUTrackingInOutZS* out)
14241404
{
@@ -1436,7 +1416,6 @@ void GPUReconstructionConvert::RunZSEncoderCreateMeta(const uint64_t* buffer, co
14361416

14371417
void GPUReconstructionConvert::RunZSFilter(std::unique_ptr<o2::tpc::Digit[]>* buffers, const o2::tpc::Digit* const* ptrs, size_t* nsb, const size_t* ns, const GPUParam& param, bool zs12bit, float threshold)
14381418
{
1439-
#ifdef GPUCA_HAVE_O2HEADERS
14401419
for (uint32_t i = 0; i < NSLICES; i++) {
14411420
if (buffers[i].get() != ptrs[i] || nsb != ns) {
14421421
throw std::runtime_error("Not owning digits");
@@ -1459,7 +1438,6 @@ void GPUReconstructionConvert::RunZSFilter(std::unique_ptr<o2::tpc::Digit[]>* bu
14591438
}
14601439
nsb[i] = j;
14611440
}
1462-
#endif
14631441
}
14641442

14651443
#ifdef GPUCA_O2_LIB

GPU/GPUTracking/Base/GPUReconstructionIncludesITS.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#ifndef GPURECONSTRUCTIONINCLDUESITS_H
1616
#define GPURECONSTRUCTIONINCLDUESITS_H
1717

18-
#if defined(GPUCA_HAVE_O2HEADERS) && !defined(GPUCA_STANDALONE)
18+
#if !defined(GPUCA_STANDALONE)
1919
#include "ITStracking/TrackerTraits.h"
2020
#include "ITStracking/VertexerTraits.h"
2121
#include "ITStracking/TimeFrame.h"

GPU/GPUTracking/Base/cuda/CMakeLists.txt

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,8 @@ if(NOT GPUCA_CUDA_COMPILE_MODE STREQUAL "rdc")
191191
set_target_properties(${targetName} PROPERTIES LINKER_LANGUAGE CXX)
192192
endif()
193193

194-
if(ALIGPU_BUILD_TYPE STREQUAL "O2" OR GPUCA_CONFIG_O2_EXTENSIONS)
195-
add_library(GPUTrackingCUDAExternalProvider OBJECT GPUReconstructionCUDAExternalProvider.cu)
196-
add_library(O2::GPUTrackingCUDAExternalProvider ALIAS GPUTrackingCUDAExternalProvider)
197-
set_property(TARGET GPUTrackingCUDAExternalProvider PROPERTY CUDA_SEPARABLE_COMPILATION ON)
198-
target_compile_definitions(GPUTrackingCUDAExternalProvider PRIVATE $<TARGET_PROPERTY:${targetName},COMPILE_DEFINITIONS>)
199-
target_include_directories(GPUTrackingCUDAExternalProvider PRIVATE $<TARGET_PROPERTY:${targetName},INCLUDE_DIRECTORIES>)
200-
endif()
194+
add_library(GPUTrackingCUDAExternalProvider OBJECT GPUReconstructionCUDAExternalProvider.cu)
195+
add_library(O2::GPUTrackingCUDAExternalProvider ALIAS GPUTrackingCUDAExternalProvider)
196+
set_property(TARGET GPUTrackingCUDAExternalProvider PROPERTY CUDA_SEPARABLE_COMPILATION ON)
197+
target_compile_definitions(GPUTrackingCUDAExternalProvider PRIVATE $<TARGET_PROPERTY:${targetName},COMPILE_DEFINITIONS>)
198+
target_include_directories(GPUTrackingCUDAExternalProvider PRIVATE $<TARGET_PROPERTY:${targetName},INCLUDE_DIRECTORIES>)

GPU/GPUTracking/Base/cuda/GPUReconstructionCUDAGenRTC.cxx

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@
2020
#include "GPUParamRTC.h"
2121
#include "GPUDefMacros.h"
2222
#include <unistd.h>
23-
#ifdef GPUCA_HAVE_O2HEADERS
2423
#include "Framework/SHA1.h"
25-
#endif
2624
#include <sys/stat.h>
2725
#include <fcntl.h>
2826
#include <filesystem>
@@ -55,15 +53,13 @@ int32_t GPUReconstructionCUDA::genRTC(std::string& filename, uint32_t& nCompile)
5553
baseCommand += (getenv("O2_GPU_RTC_OVERRIDE_CMD") ? std::string(getenv("O2_GPU_RTC_OVERRIDE_CMD")) : std::string(_binary_GPUReconstructionCUDArtc_command_start, _binary_GPUReconstructionCUDArtc_command_len));
5654
baseCommand += std::string(" ") + (mProcessingSettings.RTCoverrideArchitecture != "" ? mProcessingSettings.RTCoverrideArchitecture : std::string(_binary_GPUReconstructionCUDArtc_command_arch_start, _binary_GPUReconstructionCUDArtc_command_arch_len));
5755

58-
#ifdef GPUCA_HAVE_O2HEADERS
5956
char shasource[21], shaparam[21], shacmd[21], shakernels[21];
6057
if (mProcessingSettings.rtc.cacheOutput) {
6158
o2::framework::internal::SHA1(shasource, _binary_GPUReconstructionCUDArtc_src_start, _binary_GPUReconstructionCUDArtc_src_len);
6259
o2::framework::internal::SHA1(shaparam, rtcparam.c_str(), rtcparam.size());
6360
o2::framework::internal::SHA1(shacmd, baseCommand.c_str(), baseCommand.size());
6461
o2::framework::internal::SHA1(shakernels, kernelsall.c_str(), kernelsall.size());
6562
}
66-
#endif
6763

6864
nCompile = mProcessingSettings.rtc.compilePerKernel ? kernels.size() : 1;
6965
bool cacheLoaded = false;
@@ -72,9 +68,6 @@ int32_t GPUReconstructionCUDA::genRTC(std::string& filename, uint32_t& nCompile)
7268
if (mProcessingSettings.RTCcacheFolder != ".") {
7369
std::filesystem::create_directories(mProcessingSettings.RTCcacheFolder);
7470
}
75-
#ifndef GPUCA_HAVE_O2HEADERS
76-
throw std::runtime_error("Cannot use RTC cache without O2 headers");
77-
#else
7871
if (mProcessingSettings.rtc.cacheMutex) {
7972
mode_t mask = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
8073
fd = open((mProcessingSettings.RTCcacheFolder + "/cache.lock").c_str(), O_RDWR | O_CREAT | O_CLOEXEC, mask);
@@ -153,7 +146,6 @@ int32_t GPUReconstructionCUDA::genRTC(std::string& filename, uint32_t& nCompile)
153146
};
154147
fclose(fp);
155148
}
156-
#endif
157149
}
158150
if (!cacheLoaded) {
159151
if (mProcessingSettings.debugLevel >= 0) {
@@ -203,7 +195,6 @@ int32_t GPUReconstructionCUDA::genRTC(std::string& filename, uint32_t& nCompile)
203195
if (mProcessingSettings.debugLevel >= 0) {
204196
GPUInfo("RTC Compilation finished (%f seconds)", rtcTimer.GetCurrentElapsedTime());
205197
}
206-
#ifdef GPUCA_HAVE_O2HEADERS
207198
if (mProcessingSettings.rtc.cacheOutput) {
208199
FILE* fp = fopen((mProcessingSettings.RTCcacheFolder + "/rtc.cuda.cache").c_str(), "w+b");
209200
if (fp == nullptr) {
@@ -241,7 +232,6 @@ int32_t GPUReconstructionCUDA::genRTC(std::string& filename, uint32_t& nCompile)
241232
}
242233
fclose(fp);
243234
}
244-
#endif
245235
}
246236
if (mProcessingSettings.rtc.cacheOutput && mProcessingSettings.rtc.cacheMutex) {
247237
if (lockf(fd, F_ULOCK, 0)) {

0 commit comments

Comments
 (0)