{"action":"closed","number":2079,"pull_request":{"url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/2079","id":45258549,"html_url":"https://github.com/ParadiseSS13/Paradise/pull/2079","diff_url":"https://github.com/ParadiseSS13/Paradise/pull/2079.diff","patch_url":"https://github.com/ParadiseSS13/Paradise/pull/2079.patch","issue_url":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/2079","number":2079,"state":"closed","locked":false,"title":"Fixes Reagents GCing and Runtimes","user":{"login":"Fox-McCloud","id":5785200,"avatar_url":"https://avatars.githubusercontent.com/u/5785200?v=3","gravatar_id":"","url":"https://api.github.com/users/Fox-McCloud","html_url":"https://github.com/Fox-McCloud","followers_url":"https://api.github.com/users/Fox-McCloud/followers","following_url":"https://api.github.com/users/Fox-McCloud/following{/other_user}","gists_url":"https://api.github.com/users/Fox-McCloud/gists{/gist_id}","starred_url":"https://api.github.com/users/Fox-McCloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Fox-McCloud/subscriptions","organizations_url":"https://api.github.com/users/Fox-McCloud/orgs","repos_url":"https://api.github.com/users/Fox-McCloud/repos","events_url":"https://api.github.com/users/Fox-McCloud/events{/privacy}","received_events_url":"https://api.github.com/users/Fox-McCloud/received_events","type":"User","site_admin":false},"body":"I consistently noticed, in profiling, that a handful of reagents are failing to GC, quite consistently---all of these had something in common: they were all drinks or alcohol. \r\n\r\nOk, I have to rant a bit here because of how stupid this is and how much I love reagent code:\r\n\r\nIt turns out that Bay did some really stupid things with metabolization of a few reagents..namely, removing a reagent in a *specific* reagent's on_mob_life to increase the metabolization rate. This is ok in a few scenarios, but it should *never* be used to increase the metabolization rate of a chem---which is what they were using it for in a lot of cases.\r\n\r\nTake alcohol, for instance...it metabolizes at the start of ethanol's on_mob_life...does its special thing, then metabolizes again, for no reason at all....then runs the parent proc, which makes it metabolize a THIRD time. What the in the living hell, Bay? If you want higher metabolization, set the metabolization rate for alcohol to 3*REAGENTS_METABOLISM if you want it to process 3x faster (thing is, I'm not even sure if this was the intention to metabolize this quickly or not).\r\n\r\nEither case, when GCing of reagent datums was started, this became far more obvious; the reagent would remove the last bit of itself, but still try to call further instances of itself, which couldn't read the now non-existent volume...therefore it would runtime destroy the datum and it would have to end up being hard deleted instead of GC'ed (oh, sometimes it would runtime martial arts, as well, as it's died to the drunk brawler style).\r\n\r\nIN ANY EVENT. This fixes that (plus a mistake that TG made for holy water as well). All metabolization removal is handled by the parent on_mob_life. The few instances where it's manually handled, the parent proc is never called, or it is called, but on_mob_life returns, under some condition, before it can call parent (such as with holy water). \r\n\r\nOther\r\n- Updates capsaicin and frostoil\r\n- Moves frost oil to below capsaicin as frost oil is the polar opposite of capsaicin\r\n","created_at":"2015-09-17T07:14:28Z","updated_at":"2015-09-17T20:12:59Z","closed_at":"2015-09-17T20:12:59Z","merged_at":"2015-09-17T20:12:59Z","merge_commit_sha":"9dcb4a20c9a75dfef83ce9c88013bd64e6bd010f","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/2079/commits","review_comments_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/2079/comments","review_comment_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/2079/comments","statuses_url":"https://api.github.com/repos/ParadiseSS13/Paradise/statuses/02b0edb6edfe4bb442e8cd955e218ed9615fa30c","head":{"label":"Fox-McCloud:reagent-GC","ref":"reagent-GC","sha":"02b0edb6edfe4bb442e8cd955e218ed9615fa30c","user":{"login":"Fox-McCloud","id":5785200,"avatar_url":"https://avatars.githubusercontent.com/u/5785200?v=3","gravatar_id":"","url":"https://api.github.com/users/Fox-McCloud","html_url":"https://github.com/Fox-McCloud","followers_url":"https://api.github.com/users/Fox-McCloud/followers","following_url":"https://api.github.com/users/Fox-McCloud/following{/other_user}","gists_url":"https://api.github.com/users/Fox-McCloud/gists{/gist_id}","starred_url":"https://api.github.com/users/Fox-McCloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Fox-McCloud/subscriptions","organizations_url":"https://api.github.com/users/Fox-McCloud/orgs","repos_url":"https://api.github.com/users/Fox-McCloud/repos","events_url":"https://api.github.com/users/Fox-McCloud/events{/privacy}","received_events_url":"https://api.github.com/users/Fox-McCloud/received_events","type":"User","site_admin":false},"repo":{"id":27287788,"name":"Paradise-1","full_name":"Fox-McCloud/Paradise-1","owner":{"login":"Fox-McCloud","id":5785200,"avatar_url":"https://avatars.githubusercontent.com/u/5785200?v=3","gravatar_id":"","url":"https://api.github.com/users/Fox-McCloud","html_url":"https://github.com/Fox-McCloud","followers_url":"https://api.github.com/users/Fox-McCloud/followers","following_url":"https://api.github.com/users/Fox-McCloud/following{/other_user}","gists_url":"https://api.github.com/users/Fox-McCloud/gists{/gist_id}","starred_url":"https://api.github.com/users/Fox-McCloud/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Fox-McCloud/subscriptions","organizations_url":"https://api.github.com/users/Fox-McCloud/orgs","repos_url":"https://api.github.com/users/Fox-McCloud/repos","events_url":"https://api.github.com/users/Fox-McCloud/events{/privacy}","received_events_url":"https://api.github.com/users/Fox-McCloud/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Fox-McCloud/Paradise-1","description":"","fork":true,"url":"https://api.github.com/repos/Fox-McCloud/Paradise-1","forks_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/forks","keys_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/teams","hooks_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/hooks","issue_events_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/issues/events{/number}","events_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/events","assignees_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/assignees{/user}","branches_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/branches{/branch}","tags_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/tags","blobs_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/git/refs{/sha}","trees_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/statuses/{sha}","languages_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/languages","stargazers_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/stargazers","contributors_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/contributors","subscribers_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/subscribers","subscription_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/subscription","commits_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/commits{/sha}","git_commits_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/git/commits{/sha}","comments_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/comments{/number}","issue_comment_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/issues/comments{/number}","contents_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/contents/{+path}","compare_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/merges","archive_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/downloads","issues_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/issues{/number}","pulls_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/pulls{/number}","milestones_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/milestones{/number}","notifications_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/labels{/name}","releases_url":"https://api.github.com/repos/Fox-McCloud/Paradise-1/releases{/id}","created_at":"2014-11-29T01:29:20Z","updated_at":"2015-05-07T20:49:05Z","pushed_at":"2015-09-17T12:23:10Z","git_url":"git://github.com/Fox-McCloud/Paradise-1.git","ssh_url":"git@github.com:Fox-McCloud/Paradise-1.git","clone_url":"https://github.com/Fox-McCloud/Paradise-1.git","svn_url":"https://github.com/Fox-McCloud/Paradise-1","homepage":null,"size":794547,"stargazers_count":0,"watchers_count":0,"language":"DM","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ParadiseSS13:master","ref":"master","sha":"ce91a30da303578129c2262dd8d1f3da730b64dd","user":{"login":"ParadiseSS13","id":9994901,"avatar_url":"https://avatars.githubusercontent.com/u/9994901?v=3","gravatar_id":"","url":"https://api.github.com/users/ParadiseSS13","html_url":"https://github.com/ParadiseSS13","followers_url":"https://api.github.com/users/ParadiseSS13/followers","following_url":"https://api.github.com/users/ParadiseSS13/following{/other_user}","gists_url":"https://api.github.com/users/ParadiseSS13/gists{/gist_id}","starred_url":"https://api.github.com/users/ParadiseSS13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ParadiseSS13/subscriptions","organizations_url":"https://api.github.com/users/ParadiseSS13/orgs","repos_url":"https://api.github.com/users/ParadiseSS13/repos","events_url":"https://api.github.com/users/ParadiseSS13/events{/privacy}","received_events_url":"https://api.github.com/users/ParadiseSS13/received_events","type":"User","site_admin":false},"repo":{"id":27286452,"name":"Paradise","full_name":"ParadiseSS13/Paradise","owner":{"login":"ParadiseSS13","id":9994901,"avatar_url":"https://avatars.githubusercontent.com/u/9994901?v=3","gravatar_id":"","url":"https://api.github.com/users/ParadiseSS13","html_url":"https://github.com/ParadiseSS13","followers_url":"https://api.github.com/users/ParadiseSS13/followers","following_url":"https://api.github.com/users/ParadiseSS13/following{/other_user}","gists_url":"https://api.github.com/users/ParadiseSS13/gists{/gist_id}","starred_url":"https://api.github.com/users/ParadiseSS13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ParadiseSS13/subscriptions","organizations_url":"https://api.github.com/users/ParadiseSS13/orgs","repos_url":"https://api.github.com/users/ParadiseSS13/repos","events_url":"https://api.github.com/users/ParadiseSS13/events{/privacy}","received_events_url":"https://api.github.com/users/ParadiseSS13/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ParadiseSS13/Paradise","description":"Paradise Station's GitHub repository. Please use icon_override when making new inhand icons for items, as our item_lefthand and item_righthand .dmi files are full due to a BYOND limitation.","fork":false,"url":"https://api.github.com/repos/ParadiseSS13/Paradise","forks_url":"https://api.github.com/repos/ParadiseSS13/Paradise/forks","keys_url":"https://api.github.com/repos/ParadiseSS13/Paradise/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ParadiseSS13/Paradise/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ParadiseSS13/Paradise/teams","hooks_url":"https://api.github.com/repos/ParadiseSS13/Paradise/hooks","issue_events_url":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/events{/number}","events_url":"https://api.github.com/repos/ParadiseSS13/Paradise/events","assignees_url":"https://api.github.com/repos/ParadiseSS13/Paradise/assignees{/user}","branches_url":"https://api.github.com/repos/ParadiseSS13/Paradise/branches{/branch}","tags_url":"https://api.github.com/repos/ParadiseSS13/Paradise/tags","blobs_url":"https://api.github.com/repos/ParadiseSS13/Paradise/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ParadiseSS13/Paradise/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ParadiseSS13/Paradise/git/refs{/sha}","trees_url":"https://api.github.com/repos/ParadiseSS13/Paradise/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ParadiseSS13/Paradise/statuses/{sha}","languages_url":"https://api.github.com/repos/ParadiseSS13/Paradise/languages","stargazers_url":"https://api.github.com/repos/ParadiseSS13/Paradise/stargazers","contributors_url":"https://api.github.com/repos/ParadiseSS13/Paradise/contributors","subscribers_url":"https://api.github.com/repos/ParadiseSS13/Paradise/subscribers","subscription_url":"https://api.github.com/repos/ParadiseSS13/Paradise/subscription","commits_url":"https://api.github.com/repos/ParadiseSS13/Paradise/commits{/sha}","git_commits_url":"https://api.github.com/repos/ParadiseSS13/Paradise/git/commits{/sha}","comments_url":"https://api.github.com/repos/ParadiseSS13/Paradise/comments{/number}","issue_comment_url":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/comments{/number}","contents_url":"https://api.github.com/repos/ParadiseSS13/Paradise/contents/{+path}","compare_url":"https://api.github.com/repos/ParadiseSS13/Paradise/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ParadiseSS13/Paradise/merges","archive_url":"https://api.github.com/repos/ParadiseSS13/Paradise/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ParadiseSS13/Paradise/downloads","issues_url":"https://api.github.com/repos/ParadiseSS13/Paradise/issues{/number}","pulls_url":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls{/number}","milestones_url":"https://api.github.com/repos/ParadiseSS13/Paradise/milestones{/number}","notifications_url":"https://api.github.com/repos/ParadiseSS13/Paradise/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ParadiseSS13/Paradise/labels{/name}","releases_url":"https://api.github.com/repos/ParadiseSS13/Paradise/releases{/id}","created_at":"2014-11-29T00:16:54Z","updated_at":"2015-09-16T13:15:47Z","pushed_at":"2015-09-17T20:12:59Z","git_url":"git://github.com/ParadiseSS13/Paradise.git","ssh_url":"git@github.com:ParadiseSS13/Paradise.git","clone_url":"https://github.com/ParadiseSS13/Paradise.git","svn_url":"https://github.com/ParadiseSS13/Paradise","homepage":"http://nanotrasen.se/phpBB3/index.php","size":815891,"stargazers_count":36,"watchers_count":36,"language":"DM","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":101,"mirror_url":null,"open_issues_count":98,"forks":101,"open_issues":98,"watchers":36,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/2079"},"html":{"href":"https://github.com/ParadiseSS13/Paradise/pull/2079"},"issue":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/2079"},"comments":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/issues/2079/comments"},"review_comments":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/2079/comments"},"review_comment":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/pulls/2079/commits"},"statuses":{"href":"https://api.github.com/repos/ParadiseSS13/Paradise/statuses/02b0edb6edfe4bb442e8cd955e218ed9615fa30c"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"Markolie","id":3009534,"avatar_url":"https://avatars.githubusercontent.com/u/3009534?v=3","gravatar_id":"","url":"https://api.github.com/users/Markolie","html_url":"https://github.com/Markolie","followers_url":"https://api.github.com/users/Markolie/followers","following_url":"https://api.github.com/users/Markolie/following{/other_user}","gists_url":"https://api.github.com/users/Markolie/gists{/gist_id}","starred_url":"https://api.github.com/users/Markolie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Markolie/subscriptions","organizations_url":"https://api.github.com/users/Markolie/orgs","repos_url":"https://api.github.com/users/Markolie/repos","events_url":"https://api.github.com/users/Markolie/events{/privacy}","received_events_url":"https://api.github.com/users/Markolie/received_events","type":"User","site_admin":false},"comments":2,"review_comments":0,"commits":1,"additions":55,"deletions":52,"changed_files":8}}