Tags: avwarez/eMule
Tags
CI: pin the release tag to the actual build commit, not the default b… …ranch The release job has no checkout step, so gh release create had no local git context and, without an explicit --target, silently pointed the new tag at the repo's default branch (master) instead of the v0.72a-build commit that was actually built - master's one commit dates back to 2016-04-10, which is why the release's auto-generated "Source code" archive showed that date instead of today's.
Restore WSAAsyncSelect and parallelize upload disk reads (0.70.2.8)
- AsyncSocketEx: revert the custom CSocketDispatchThread introduced in
7eb5665. Its WSAEventSelect-based loop enumerated every socket on each
event (100% CPU under load) and re-implemented machinery WSAAsyncSelect
already provides reliably under Wine. Re-register sockets via
WSAAsyncSelect directly, restoring O(1) per-event dispatch.
- UploadDiskIOThread: add a 2-thread worker pool draining a shared queue;
ReadFile remains synchronous and is invoked with an OVERLAPPED struct
only to carry a per-call offset (handle stays without
FILE_FLAG_OVERLAPPED, mapping to pread() on Wine). Concurrency lives in
userspace, not in the kernel async path that 0.70c was avoiding.
- UploadDiskIOThread: round-robin block collection across clients
(StartCreateNextBlockPackage gains bSinglePass) so workers do not drain
one client to zero before touching the others, preserving per-slot
fairness.
- UploadDiskIOThread: m_bSignalThrottler is now std::atomic<bool>;
workers signal the throttler per-read and the coordinator does a
defensive end-of-batch signal to close the last-read race window.
- emule.vcxproj: add ZLIB_WINAPI to the remaining build configuration
so zlib.h (stdcall) matches zlibwapi.lib across all targets.
- Version bump to 0.70.2.8
Fix thread-safety races in DNS/disk-I/O and enable Win32 Release bui…
…ld (0.70.2.7)
- AsyncSocketEx: DnsChannel mutex eliminates TOCTOU on helper HWND;
monotonic uint64 sentinel replaces reusable heap address
- PartFileWriteThread / UploadDiskIOThread: dedicated m_bStop flag
ends join() deadlock caused by worker overwriting m_Run
- PartFileWriteThread: init m_Run=RUN_IDLE before thread start;
AddFile() error path uses _SetStatus() (no cross-thread UI call);
destructor guarded against std::terminate on joinable thread
- UploadDiskIOThread: fix buffer-allocation leak via unique_ptr
- KnownFile::nInUse made std::atomic<int> (racy decrement in
ReadCompletionRoutine)
- PartFileBufferedData::flushed made std::atomic<uint8_t> with
proper initialising ctor
- emule.vcxproj Release|Win32: fix lib paths to new ..\..\ layout
and add ZLIB_WINAPI so zlib.h (stdcall) matches zlibwapi.lib
- Version bump to 0.70.2.7
Fix threading, timer, Wine I/O and disk-full bugs (0.70.2.5)
- AICHSyncThread: replace direct MFC UI calls with PostMessage (thread-safety)
- CreditsThread: replace IOPL-0 VGA inline asm with Sleep(1) (Wine/x64 crash fix)
- GDIThread: boost worker thread priority (not caller) and cap wait to 5 s
- FrameGrabThread: RAII for bitmap array and COM init (leak on exception)
- SetTimer: replace SetTimer(NULL,0,...) with explicit non-zero IDs throughout
(EmuleDlg, ServerConnect, QueueListCtrl, UploadQueue) to prevent timer aliasing
- ServerConnect: use GetTickCount64()/ULONGLONG map key to fix 49-day wraparound
- PartFileWriteThread: replace OVERLAPPED writes with SetFilePointerEx+WriteFile;
Wine ignores OVERLAPPED offset on sync handles, causing all chunks to land at
offset 0 and corrupt the part file (hash check → PS_ERROR)
- PartFileWriteThread: pre-allocate via m_hWrite/SetEndOfFile instead of
cross-thread m_hpartfile.SetLength()
- PartFile: proactive per-file disk-space check before SetLength using
(m_nFileSize - cursize) so a single large download is paused before the disk
fills; other downloads continue unaffected
- PartFile: FlushBuffersExceptionHandler always pauses gracefully on diskFull
instead of conditionally calling CheckDiskspace
Added ARM64 platform. Updated some older code, fixed a number of issues and regressions. Libraries: updated MbedTLS to version 4.0, removed CxImage and libpng.
Added TLS 1.3 support PeerCache removed Redesigned Options->Directories and UNC shares handling A few minor changes and fixed regressions.
Using I/O completion ports for disk operations Improve handling of UNC paths Minor GUI enhancements
Fix crash in part file conversion Compacted files might get unacked Allow MediaInfo dll 21.09
PreviousNext