diff options
Diffstat (limited to 'source/utilities')
-rw-r--r-- | source/utilities/BulkHandler.h | 5 | ||||
-rw-r--r-- | source/utilities/CaptiveThreadObject.cpp | 3 | ||||
-rw-r--r-- | source/utilities/MemMappedFile.cpp | 10 | ||||
-rw-r--r-- | source/utilities/MemMappedFile.h | 2 |
4 files changed, 12 insertions, 8 deletions
diff --git a/source/utilities/BulkHandler.h b/source/utilities/BulkHandler.h index 71147ab..b441a67 100644 --- a/source/utilities/BulkHandler.h +++ b/source/utilities/BulkHandler.h @@ -56,14 +56,15 @@ public: void HandleCommandRequest(uint16 session, uint32 chunkSize, uint64 offset, uint32 length, bool acknowledge); private: CLCDriverMethods *m_Methods; + CSemaphoreQueue m_ReceiveQueue; Buffers *m_pBuffers; LcmInterface *m_pLcmInterface; Logger *m_pLogger; BulkState m_State; + CThreadWrapper *m_pFileWriteThread; TL_BulkVectorList_t *m_pBulkVector; std::string m_sFilePath; - CSemaphoreQueue m_ReceiveQueue; - CThreadWrapper *m_pFileWriteThread; + private: void HandleReadRequest(uint16 session, uint32 chunkSize, uint64 offset, uint32 length); void HandleWriteRequest(uint16 session, uint32 chunkSize, uint64 offset, uint32 length); diff --git a/source/utilities/CaptiveThreadObject.cpp b/source/utilities/CaptiveThreadObject.cpp index e9eb472..052bbce 100644 --- a/source/utilities/CaptiveThreadObject.cpp +++ b/source/utilities/CaptiveThreadObject.cpp @@ -17,11 +17,10 @@ CCaptiveThreadObject::CCaptiveThreadObject() : IsDying(0), -#pragma warning(disable: 4355) // 'this' used before initialized but ok as thread starts in inactive state Thread(ThreadEntry, this) { } -#pragma warning(default: 4355) + CCaptiveThreadObject::~CCaptiveThreadObject() { diff --git a/source/utilities/MemMappedFile.cpp b/source/utilities/MemMappedFile.cpp index 287c5b9..8d5905d 100644 --- a/source/utilities/MemMappedFile.cpp +++ b/source/utilities/MemMappedFile.cpp @@ -71,7 +71,10 @@ int MemMappedFile::LoadFileData(const char *path) return FILE_OPENING_ERROR; } - size_ = ::GetFileSize(handle_, NULL); + uint64 SizeHigh = 0; + + size_ = ::GetFileSize(handle_, (LPDWORD)&SizeHigh); + size_ = (SizeHigh << 32) | size_; if (0 == size_) { return 0; @@ -113,8 +116,9 @@ int MemMappedFile::LoadFileData(const char *path) size_ = fileStat.st_size; - mappedData_ = static_cast<uint8 *>(mmap(0, size_, PROT_READ, MAP_PRIVATE | MAP_POPULATE, descriptor_, 0)); - + /* alway return MAP_FAILED to prevent memory consumption */ + mappedData_ = (uint8 *)MAP_FAILED; //static_cast<uint8 *>(mmap(0, size_, PROT_READ, MAP_PRIVATE /*| MAP_POPULATE*/, descriptor_, 0)); + if (MAP_FAILED != mappedData_) { isMapped_ = true; } else { diff --git a/source/utilities/MemMappedFile.h b/source/utilities/MemMappedFile.h index 8cc63f5..7995365 100644 --- a/source/utilities/MemMappedFile.h +++ b/source/utilities/MemMappedFile.h @@ -27,9 +27,9 @@ private: std::string path_; uint64 size_; bool isMapped_; - uint32 alignmentLength_; uint8 *mappedData_; int error_; + uint32 alignmentLength_; #ifdef _WIN32 HANDLE handle_; HANDLE memmap_; |