Testing Emule 0.60 (completed) Community version
#142
Posted 04 December 2020 - 09:43 PM
#143
Posted 06 December 2020 - 08:08 PM
Now:
Emule UI stops responding or gets completely white when i'm downloading multiple files whose size is bigger than 5GB :S
On task manager it doesn't showup as not responding, in fact, it seems to keep downloading content, it's just the UI that gets frozen/unstable :S
Details:
Emule: 0.60a x64
O.S: Windows 10 (updated)
Arch: 64b
CPU: i9 8gen
RAM: 32GB
Disk: HDD (1TB)
If there is any log that i can share to try fixing the issue, i will gladly share it yet again, the program seems to work fine, just the UI is broken, so not sure if that will showup in any log.
My work around is to start it and minimize it ASAP. Then i regulary check the downloads folder to see if all downloads are there (so they're complete) and i move them to another folder. It sucks, because it means i can't share bigger files if i want to use it again.
This post has been edited by petatester: 06 December 2020 - 08:13 PM
#144
Posted 06 December 2020 - 08:25 PM
#145
Posted 07 December 2020 - 10:08 AM
petatester, on 06 December 2020 - 11:08 PM, said:
Would you please supply information about network and settings?
At least, what line you have, what are set speed limits, and how fast is upload/download to cause frozen UI.
This post has been edited by fox88: 07 December 2020 - 10:08 AM
#146
Posted 07 December 2020 - 12:44 PM
I was running 0.50 without any issue but I put 0.60 on and now when I click ed2k links to add new files, it launches a whole new instance of eMule.
Can't seem to find a tickbox to tell it to only run one instance. 0.50 never did it.
What am I missing?
Running Windows 8.1.
#147
Posted 07 December 2020 - 01:21 PM
QICKV8, on 06 December 2020 - 08:25 PM, said:
Yes, but i can only share them in private. I mostly download mkvs from different users.
fox88, on 07 December 2020 - 10:08 AM, said:
petatester, on 06 December 2020 - 11:08 PM, said:
Would you please supply information about network and settings?
At least, what line you have, what are set speed limits, and how fast is upload/download to cause frozen UI.
Oh, sorry, i didn't realize download speed may be the issue, i thought it was the filesize:
Connection Type: Fiber
Speed: DOWN 100 MB/s | UP 10 MB/s
Emule limits: No DOWN/UP limits set.
Emule connection: eD2K & Kad connected. Low id (i'm under CG-NAT, so i can't open ports )
Downloads speed was 4-7mb/s and up 1mb/s.
It's true that once there are no more downloads in progress, UI works perfectly.
This post has been edited by petatester: 07 December 2020 - 01:24 PM
#148
Posted 07 December 2020 - 04:54 PM
MB is megabytes, and Mbit is for megabits. Did you mean 100/10 Mbit/s?
The good practice is to set upload limit at 80% of capacity.
The issue is that GUI gets hindered by a large amount of writing, especially if disk performance is low.
Faster disk and/or setting lower download limit might help.
#149
Posted 07 December 2020 - 08:33 PM
I noticed that you replaced most if not all instances of the NMHDR pointer type with the LPNMHDR type, which is basically just the same. According to this {1} thread that's pretty much unnecessary because the FAR macro really just points nowhere (see also here {2}). The official documentation {3} also uses the NMHDR pointer type.
So what was your intention with these changes? Because it feels to me like LPNMHDR is like a deprecated definition which adds no benefit or functional change to the code when used. But maybe I am also just missing something so I'd appreciate any comment or explanation.
Cheers,
Stulle
{1} stackoverflow.com/questions/11185736/how-makeintresource-and-wm-notify-works
{2} stackoverflow.com/questions/4024403/what-does-far-mean-in-c
{3} docs.microsoft.com/en-us/cpp/mfc/tn062-message-reflection-for-windows-controls?view=msvc-160
[Imagine there was a sarcasm meter right here!]
No, there will not be a new version of my mods. No, I do not want your PM. No, I am certain, use the board and quit sending PMs. No, I am not kidding, there will not be a new version of my mods just because of YOU asking for it!
#150
Posted 07 December 2020 - 09:28 PM
did you notice that the referenced MS documentation also uses LPDRAWITEMSTRUCT?
After a while these seemingly awkward abbreviations became clear, consistent and even convenient.
Whenever there is an LP prefix, I immediately know it would be a pointer to an object.
With an asterisk, you have to parse it backwards.
#151
Posted 09 December 2020 - 07:08 AM
[Imagine there was a sarcasm meter right here!]
No, there will not be a new version of my mods. No, I do not want your PM. No, I am certain, use the board and quit sending PMs. No, I am not kidding, there will not be a new version of my mods just because of YOU asking for it!
#152
Posted 12 December 2020 - 07:40 AM
BYTE *byBuffer = fileAICHTag.Detach(); - CKadTagBsob tag(TAG_KADAICHHASHRESULT, byBuffer, nSize); + const CKadTagBsob tag1(TAG_KADAICHHASHRESULT, byBuffer, nSize); pData->WriteTag(&tag); free(byBuffer);
So I guess you replaced tag here with tag1 because the compiler gave you a warning the variable name "tag" was reused. That seems fine. But what isn't fine is that you did not change the following line where the tag is supposed to be written to the data stream.
Assessment correct?
[Edit]I found something else in uint32 CKademlia::CalculateKadUsersNew(). It is more of a naming thing, though. From my git diff:
- uint64 nAverage = 0; - for (POSITION pos1 = liMedian.GetHeadPosition(); pos1 != NULL; ) - nAverage += liMedian.GetNext(pos1); - nMedian = (uint32)(nAverage / liMedian.GetCount()); + uint64 nMedian = 0; + for (POSITION pos = liMedian.GetHeadPosition(); pos != NULL; ) + nMedian += liMedian.GetNext(pos); + nMedian /= liMedian.GetCount();
This is not how you calculate a median. The median would be the middle item of the sorted list. I would call this an average or a mean. Truth be told, I use these interchangeably, and am not sure if that is okay. Nevertheless, I know the median is something else.
This post has been edited by Stulle: 12 December 2020 - 02:54 PM
[Imagine there was a sarcasm meter right here!]
No, there will not be a new version of my mods. No, I do not want your PM. No, I am certain, use the board and quit sending PMs. No, I am not kidding, there will not be a new version of my mods just because of YOU asking for it!
#153
Posted 12 December 2020 - 05:40 PM
In my code the tag writing was corrected without even noticing it was a bug (the code uses references, not pointers).
There should be a maintenance release.
As for median, you might take a look at the whole code and the comments.
The first and the last thirds of sorted list were discarded, average calculated for the middle section only.
The result was an empirical mix, not a textbook median or average.
#154
Posted 13 December 2020 - 01:51 PM
fox88, on 12 December 2020 - 05:40 PM, said:
In my code the tag writing was corrected without even noticing it was a bug (the code uses references, not pointers).
There should be a maintenance release.
Alright. I am still reviewing the code and will take a couple more days or probably rather weeks. So I might come up with something else later. Just saying.
fox88, on 12 December 2020 - 05:40 PM, said:
The first and the last thirds of sorted list were discarded, average calculated for the middle section only.
The result was an empirical mix, not a textbook median or average.
Looking at the comments I noticed they have been scrambled... It used to be "Of course this only works if we have enough samples, because" not just "Of course this only works".
Reviewing the code I can see that one third in total is actually discarded, one sixth at the beginning and one sixth at the end. So yeah, it really is not a textbook average but the general calculation is still an average or mean calculation, mostly. So I don't really agree with renaming the variables as median and would propose you change it back to average. Anyhow, since its only cosmetic, this is really nothing we have to debate endlessly. Take it or leave it, I'd say. ;-)
[Imagine there was a sarcasm meter right here!]
No, there will not be a new version of my mods. No, I do not want your PM. No, I am certain, use the board and quit sending PMs. No, I am not kidding, there will not be a new version of my mods just because of YOU asking for it!
#155
Posted 13 December 2020 - 02:21 PM
#156
Posted 13 December 2020 - 03:08 PM
#157
Posted 13 December 2020 - 03:15 PM
This should fix
- incorrectly disabled Preview item in context menu of downloads list
- memory leak in storing searches routine
- regression in frame grabber
- AICH tag publishing
The link is in the topmost post.
#159
Posted 14 December 2020 - 07:39 PM
if (uEnd >= (uint64)m_reqfile->GetFileSize()) uEnd = (uint64)m_reqfile->GetFileSize();
It's unnecessary to set uEnd to file size if it's already equal to that value. Anyhow, few files will even meet the criteria...
[Imagine there was a sarcasm meter right here!]
No, there will not be a new version of my mods. No, I do not want your PM. No, I am certain, use the board and quit sending PMs. No, I am not kidding, there will not be a new version of my mods just because of YOU asking for it!
#160
Posted 15 December 2020 - 08:22 AM
There definition of the right side of intervals is inconsistent, and this is what remained from old attempts to change this. This might be revisited later, but now things should be fixed.
The code in CUpDownClient::DrawStatusBar should use
uint64 uEnd = min(uBegin + PARTSIZE, (uint64)m_reqfile->GetFileSize());
and condition to check
... && m_nLastBlockOffset < uEnd)
In CUpDownClient::DrawUpStatusBar 3 identical corrections:
should be i * PARTSIZE + PARTSIZE instead of i * PARTSIZE + PARTSIZE - 1