forum

abraker's list of locked thread.

posted
Total Posts
1,418
show more
Nuuskamuikkunen
Imagine locking an imagination thread.



I'll stop, I swear.
q9za
Imagine stopping imagining.
JustABeginner
ABRAKER! I WAS TYPING AT THE MOMENT IT WAS LOCKED.

WHA- ;-;.

Source: "I give you a random number between 0 and 999" by Corne2Plum3, click here.
Corne2Plum3

JustABeginner wrote:

ABRAKER! I WAS TYPING AT THE MOMENT IT WAS LOCKED.

WHA- ;-;.

Source: "I give you a random number between 0 and 999" by Corne2Plum3, click here.
You seems lucky then
samX500

eblf2013 wrote:

Zelzatter Zero wrote:

community/forums/topics/1108741

poor Death... he have to edit the post again
I think any GMT can do it.
GMT can edit other people's post but it would then be written as

last edited by abraker

but here it is written

last edited by death

so it really is death who edits this post, unless GMT can also hide their edit.
q9za
rip 420 thread
Hydreigon
community/forums/topics/1094775

the church died again, at exactly 200 posts, nice
abraker
me posting would have ruined it
Lights

abraker wrote:

me posting would have ruined it
thank you for locking that thread.
levesterz
It would be funny if the third one rise up
samX500
it would surprise me if a third one did not rise up
abraker
man I cant feel but feel sorry for Tad. His luck hasnt been the best today
Zelzatter Zero
Lapizote
community/forums/topics/1112772

abraker strikes again
Nuuskamuikkunen
もう一回
JustABeginner
Awoooooooooooo!

It shows that our posts aren't good enough. Petition for abraker to bring back guides to make quality posts!

Edit: I was about to delete this post.
Winnyace

axl2468 wrote:

community/forums/topics/1112772

abraker strikes again
OMG ABRAKER LOCKED MY THREAD!!! ILY ABBY-KUN!!!!
Hydreigon

axl2468 wrote:

community/forums/topics/1112772

abraker strikes again
the title should be "the zoo's closed"
Corne2Plum3

Hydreigon wrote:

community/forums/topics/1094775

the church died again, at exactly 200 posts, nice
nice
Zelzatter Zero
community/forums/topics/1113080

yup, the third one is now eliminated
Isshiki Kaname
one more post to get this locked
Winnyace
hi I was in this before lock. good night sweet prince!
Lights
++postCount;
q9za
More OT points for our abraker
Zelzatter Zero
q9za

Zelzatter Zero wrote:

community/forums/topics/1113434

yo
That was quick
Winnyace

Lights wrote:

++postCount;
I still don't know the difference between i++ and ++i lol
Lights

Winnyace wrote:

Lights wrote:

++postCount;
I still don't know the difference between i++ and ++i lol
++var = increment value, then reference current value
var++ = reference current value, then increment it.
Winnyace

Lights wrote:

Winnyace wrote:

Lights wrote:

++postCount;
I still don't know the difference between i++ and ++i lol
++var = increment value, then reference current value
var++ = reference current value, then increment it.
got it. thank you!
q9za
what
Topic Starter
Death
I personally prefer i -=- 1
Winnyace
used that countless times. papa bless the guy who came out with the idea of -=-
Lights

Death wrote:

I personally prefer i -=- 1
i mean, thats one way to write code nobody will want to steal

Winnyace wrote:

used that countless times. papa bless the guy who came out with the idea of -=-
Its not a very good idea.

i -= (value) is just shorthand for i = i - (value)
and the value being subtracted is -1
so you're just doing: i = i - (-1)
which is just i = i + 1
which is just a longer way of accomplishing ++i

Death you are a top tier code troll.

++User.byUsername("Lights").socialStats[User.byUsername("Death").userid].respect;
Corne2Plum3
i += 1
Lapizote
and here I am, only knowing how to write

print("This in Python 3.")
abraker
tfw coding becoming mainstream
Zelzatter Zero
community/forums/topics/1069793

care to explain why abrakaer?
abraker
Why dont I let the thread explain it instead, it does a better job doing that than I could.
Serraionga

Zelzatter Zero wrote:

community/forums/topics/1069793

care to explain why abrakaer?
let’s see here…
dumb gameplay-related thread
posted in the wrong section
question that has been asked a million times
necro’ed

yeah wtf abraker come on man get a grip
q9za

Serraionga wrote:

Zelzatter Zero wrote:

community/forums/topics/1069793

care to explain why abrakaer?
let’s see here…
dumb gameplay-related thread
posted in the wrong section
question that has been asked a million times
necro’ed

yeah wtf abraker come on man get a grip
cArE tO ExPlAin?
abraker
My grip is pretty good thx for asking



Nuuskamuikkunen
Hydreigon
we all got banned
levesterz
f
Nuuskamuikkunen
It was a pleasure to follow all of you after all these years.

I know I have barely knew you all for a few months but I got really fond of this place.

Now we're banned.
Zelzatter Zero
community/forums/topics/1114310

In computer science, a lock or mutex (from mutual exclusion) is a synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of execution. A lock is designed to enforce a mutual exclusion concurrency control policy.


Contents
1 Types
2 Granularity
3 Database locks
4 Disadvantages
4.1 Lack of composability
5 Language support
6 See also
7 References
8 External links
Types
Generally, locks are advisory locks, where each thread cooperates by acquiring the lock before accessing the corresponding data. Some systems also implement mandatory locks, where attempting unauthorized access to a locked resource will force an exception in the entity attempting to make the access.

The simplest type of lock is a binary semaphore. It provides exclusive access to the locked data. Other schemes also provide shared access for reading data. Other widely implemented access modes are exclusive, intend-to-exclude and intend-to-upgrade.

Another way to classify locks is by what happens when the lock strategy prevents progress of a thread. Most locking designs block the execution of the thread requesting the lock until it is allowed to access the locked resource. With a spinlock, the thread simply waits ("spins") until the lock becomes available. This is efficient if threads are blocked for a short time, because it avoids the overhead of operating system process re-scheduling. It is inefficient if the lock is held for a long time, or if the progress of the thread that is holding the lock depends on preemption of the locked thread.

Locks typically require hardware support for efficient implementation. This support usually takes the form of one or more atomic instructions such as "test-and-set", "fetch-and-add" or "compare-and-swap". These instructions allow a single process to test if the lock is free, and if free, acquire the lock in a single atomic operation.

Uniprocessor architectures have the option of using uninterruptable sequences of instructions—using special instructions or instruction prefixes to disable interrupts temporarily—but this technique does not work for multiprocessor shared-memory machines. Proper support for locks in a multiprocessor environment can require quite complex hardware or software support, with substantial synchronization issues.

The reason an atomic operation is required is because of concurrency, where more than one task executes the same logic. For example, consider the following C code:

if (lock == 0) {
// lock free, set it
lock = myPID;
}
The above example does not guarantee that the task has the lock, since more than one task can be testing the lock at the same time. Since both tasks will detect that the lock is free, both tasks will attempt to set the lock, not knowing that the other task is also setting the lock. Dekker's or Peterson's algorithm are possible substitutes if atomic locking operations are not available.

Careless use of locks can result in deadlock or livelock. A number of strategies can be used to avoid or recover from deadlocks or livelocks, both at design-time and at run-time. (The most common strategy is to standardize the lock acquisition sequences so that combinations of inter-dependent locks are always acquired in a specifically defined "cascade" order.)

Some languages do support locks syntactically. An example in C# follows:

public class Account // This is a monitor of an account
{
private decimal _balance = 0;
private object _balanceLock = new object();

public void Deposit(decimal amount)
{
// Only one thread at a time may execute this statement.
lock (_balanceLock)
{
_balance += amount;
}
}

public void Withdraw(decimal amount)
{
// Only one thread at a time may execute this statement.
lock (_balanceLock)
{
_balance -= amount;
}
}
}
The code lock(this) can lead to problems if the instance can be accessed publicly.[1]

Similar to Java, C# can also synchronize entire methods, by using the MethodImplOptions.Synchronized attribute.[2][3]

[MethodImpl(MethodImplOptions.Synchronized)]
public void SomeMethod()
{
// do stuff
}
Granularity
Before being introduced to lock granularity, one needs to understand three concepts about locks:

lock overhead: the extra resources for using locks, like the memory space allocated for locks, the CPU time to initialize and destroy locks, and the time for acquiring or releasing locks. The more locks a program uses, the more overhead associated with the usage;
lock contention: this occurs whenever one process or thread attempts to acquire a lock held by another process or thread. The more fine-grained the available locks, the less likely one process/thread will request a lock held by the other. (For example, locking a row rather than the entire table, or locking a cell rather than the entire row.);
deadlock: the situation when each of at least two tasks is waiting for a lock that the other task holds. Unless something is done, the two tasks will wait forever.
There is a tradeoff between decreasing lock overhead and decreasing lock contention when choosing the number of locks in synchronization.

An important property of a lock is its granularity. The granularity is a measure of the amount of data the lock is protecting. In general, choosing a coarse granularity (a small number of locks, each protecting a large segment of data) results in less lock overhead when a single process is accessing the protected data, but worse performance when multiple processes are running concurrently. This is because of increased lock contention. The more coarse the lock, the higher the likelihood that the lock will stop an unrelated process from proceeding. Conversely, using a fine granularity (a larger number of locks, each protecting a fairly small amount of data) increases the overhead of the locks themselves but reduces lock contention. Granular locking where each process must hold multiple locks from a common set of locks can create subtle lock dependencies. This subtlety can increase the chance that a programmer will unknowingly introduce a deadlock.[citation needed]

In a database management system, for example, a lock could protect, in order of decreasing granularity, part of a field, a field, a record, a data page, or an entire table. Coarse granularity, such as using table locks, tends to give the best performance for a single user, whereas fine granularity, such as record locks, tends to give the best performance for multiple users.

Database locks
Main article: Lock (database)
Database locks can be used as a means of ensuring transaction synchronicity. i.e. when making transaction processing concurrent (interleaving transactions), using 2-phased locks ensures that the concurrent execution of the transaction turns out equivalent to some serial ordering of the transaction. However, deadlocks become an unfortunate side-effect of locking in databases. Deadlocks are either prevented by pre-determining the locking order between transactions or are detected using waits-for graphs. An alternate to locking for database synchronicity while avoiding deadlocks involves the use of totally ordered global timestamps.

There are mechanisms employed to manage the actions of multiple concurrent users on a database—the purpose is to prevent lost updates and dirty reads. The two types of locking are pessimistic locking and optimistic locking:

Pessimistic locking: a user who reads a record with the intention of updating it places an exclusive lock on the record to prevent other users from manipulating it. This means no one else can manipulate that record until the user releases the lock. The downside is that users can be locked out for a very long time, thereby slowing the overall system response and causing frustration.
Where to use pessimistic locking: this is mainly used in environments where data-contention (the degree of users request to the database system at any one time) is heavy; where the cost of protecting data through locks is less than the cost of rolling back transactions, if concurrency conflicts occur. Pessimistic concurrency is best implemented when lock times will be short, as in programmatic processing of records. Pessimistic concurrency requires a persistent connection to the database and is not a scalable option when users are interacting with data, because records might be locked for relatively large periods of time. It is not appropriate for use in Web application development.
Optimistic locking: this allows multiple concurrent users access to the database whilst the system keeps a copy of the initial-read made by each user. When a user wants to update a record, the application determines whether another user has changed the record since it was last read. The application does this by comparing the initial-read held in memory to the database record to verify any changes made to the record. Any discrepancies between the initial-read and the database record violates concurrency rules and hence causes the system to disregard any update request. An error message is generated and the user is asked to start the update process again. It improves database performance by reducing the amount of locking required, thereby reducing the load on the database server. It works efficiently with tables that require limited updates since no users are locked out. However, some updates may fail. The downside is constant update failures due to high volumes of update requests from multiple concurrent users - it can be frustrating for users.
Where to use optimistic locking: this is appropriate in environments where there is low contention for data, or where read-only access to data is required. Optimistic concurrency is used extensively in .NET to address the needs of mobile and disconnected applications,[4] where locking data rows for prolonged periods of time would be infeasible. Also, maintaining record locks requires a persistent connection to the database server, which is not possible in disconnected applications.
Disadvantages
Lock-based resource protection and thread/process synchronization have many disadvantages:

Contention: some threads/processes have to wait until a lock (or a whole set of locks) is released. If one of the threads holding a lock dies, stalls, blocks, or enters an infinite loop, other threads waiting for the lock may wait forever.
Overhead: the use of locks adds overhead for each access to a resource, even when the chances for collision are very rare. (However, any chance for such collisions is a race condition.)
Debugging: bugs associated with locks are time dependent and can be very subtle and extremely hard to replicate, such as deadlocks.
Instability: the optimal balance between lock overhead and lock contention can be unique to the problem domain (application) and sensitive to design, implementation, and even low-level system architectural changes. These balances may change over the life cycle of an application and may entail tremendous changes to update (re-balance).
Composability: locks are only composable (e.g., managing multiple concurrent locks in order to atomically delete item X from table A and insert X into table B) with relatively elaborate (overhead) software support and perfect adherence by applications programming to rigorous conventions.
Priority inversion: a low-priority thread/process holding a common lock can prevent high-priority threads/processes from proceeding. Priority inheritance can be used to reduce priority-inversion duration. The priority ceiling protocol can be used on uniprocessor systems to minimize the worst-case priority-inversion duration, as well as prevent deadlock.
Convoying: all other threads have to wait if a thread holding a lock is descheduled due to a time-slice interrupt or page fault.
Some concurrency control strategies avoid some or all of these problems. For example, a funnel or serializing tokens can avoid the biggest problem: deadlocks. Alternatives to locking include non-blocking synchronization methods, like lock-free programming techniques and transactional memory. However, such alternative methods often require that the actual lock mechanisms be implemented at a more fundamental level of the operating software. Therefore, they may only relieve the application level from the details of implementing locks, with the problems listed above still needing to be dealt with beneath the application.

In most cases, proper locking depends on the CPU providing a method of atomic instruction stream synchronization (for example, the addition or deletion of an item into a pipeline requires that all contemporaneous operations needing to add or delete other items in the pipe be suspended during the manipulation of the memory content required to add or delete the specific item). Therefore, an application can often be more robust when it recognizes the burdens it places upon an operating system and is capable of graciously recognizing the reporting of impossible demands.[citation needed]

Lack of composability
One of lock-based programming's biggest problems is that "locks don't compose": it is hard to combine small, correct lock-based modules into equally correct larger programs without modifying the modules or at least knowing about their internals. Simon Peyton Jones (an advocate of software transactional memory) gives the following example of a banking application:[5] design a class Account that allows multiple concurrent clients to deposit or withdraw money to an account; and give an algorithm to transfer money from one account to another. The lock-based solution to the first part of the problem is:

class Account:
member balance : Integer
member mutex : Lock
method deposit(n : Integer)
mutex.lock()
balance ← balance + n
mutex.unlock()
method withdraw(n : Integer)
deposit(−n)
The second part of the problem is much more complicated. A transfer routine that is correct for sequential programs would be

function transfer(from : Account, to : Account, amount : integer)
from.withdraw(amount)
to.deposit(amount)
In a concurrent program, this algorithm is incorrect because when one thread is halfway through transfer, another might observe a state where amount has been withdrawn from the first account, but not yet deposited into the other account: money has gone missing from the system. This problem can only be fixed completely by taking locks on both account prior to changing any of the two accounts, but then the locks have to be taken according to some arbitrary, global ordering to prevent deadlock:

function transfer(from : Account, to : Account, amount : integer)
if from < to // arbitrary ordering on the locks
from.lock()
to.lock()
else
to.lock()
from.lock()
from.withdraw(amount)
to.deposit(amount)
from.unlock()
to.unlock()
This solution gets more complicated when more locks are involved, and the transfer function needs to know about all of the locks, so they cannot be hidden.

Language support
See also: Barrier (computer science)
Programming languages vary in their support for synchronization:

The ISO/IEC C standard provides a standard mutual exclusion (locks) API since C11. The current ISO/IEC C++ standard supports threading facilities since C++11. The OpenMP standard is supported by some compilers, and allows critical sections to be specified using pragmas. The POSIX pthread API provides lock support.[6] Visual C++ provides the synchronize attribute of methods to be synchronized, but this is specific to COM objects in the Windows architecture and Visual C++ compiler.[7] C and C++ can easily access any native operating system locking features.
Objective-C provides the keyword @synchronized[8] to put locks on blocks of code and also provides the classes NSLock,[9] NSRecursiveLock,[10] and NSConditionLock[11] along with the NSLocking protocol[12] for locking as well.
C# provides the lock keyword on a thread to ensure its exclusive access to a resource.
VB.NET provides a SyncLock keyword like C#'s lock keyword.
Java provides the keyword synchronized to lock code blocks, methods or objects[13] and libraries featuring concurrency-safe data structures.
Python provides a low-level mutex mechanism with a Lock class from the threading module.[14]
The ISO/IEC Fortran standard (ISO/IEC 1539-1:2010) provides the lock_type derived type in the intrinsic module iso_fortran_env and the lock/unlock statements since Fortran 2008.[15]
Ruby provides a low-level mutex object and no keyword.[16]
Ada provides protected objects that have visible protected subprograms or entries[17] as well as rendezvous.[18]
x86 assembly provides the LOCK prefix on certain operations to guarantee their atomicity.
PHP provides a file-based locking [19] as well as a Mutex class in the pthreads extension. [20]
Nuuskamuikkunen
^ The hell is that?
JustABeginner
I wish I could understand...

But I learned this instead.

q9za
Awesome, but why are the colours of the products darker in the other one
Lapizote
Winnyace
that need it to die
q9za

Winnyace wrote:

that need it to die
Not quality, not fun. Didn't deserve to live.
Lights

axl2468 wrote:

community/forums/topics/1116040

rip indeed.
that thread never had a chance.
q9za

Lights wrote:

axl2468 wrote:

community/forums/topics/1116040

rip indeed.
that thread never had a chance.
1: make us a good thread of quality unmatched

2: hmmmm... let me think.. I have an idea!

1: what is it?

2: Let's make a thread where... guess what.

1: What?

2: People... COUNT!

1: That's brilliant, I commend you.

2: I am indeed pretty creative.

- OP and his friend probably.

Can't say he didn't try though, +1 point for trying.
Winnyace
the thread was fine until some dude came and counted from 2 to 10000. like wtf dude that's rude.
Hydreigon
dont we already have a counting game in fg?
Lights

Winnyace wrote:

the thread was fine until some dude came and counted from 2 to 10000. like wtf dude that's rude.
if the thread topic sucks just make a new topic. but when someone wall of text nukes it, theres not much you can do to save it.
q9za

Winnyace wrote:

the thread was fine until some dude came and counted from 2 to 10000. like wtf dude that's rude.
Me:

Quotes that person, and tell him to repeat it.

lol
McEndu

Winnyace wrote:

the thread was fine until some dude came and counted from 2 to 10000. like wtf dude that's rude.
My browser freezed twice due to that post
McEndu
wtf they got that thread wastelanded
JustABeginner

Winnyace wrote:

the thread was fine until some dude came and counted from 2 to 10000. like wtf dude that's rude.
Oh boy! Reforms Expert isn't doing this the first time.

Source: "How far can we count until osu!lazer is finished?" by PancakeGD, click here.

Note: It may crash your browser.
q9za
Welp, guess I'm not pressing the link.
Zelzatter Zero
community/forums/topics/1120496

Stop abraking thread, today.
q9za

Zelzatter Zero wrote:

community/forums/topics/1120496

Stop abraking thread, today.
Thread taught me some new things.
McEndu
Stop braking, you should accelerate
levesterz

q9za wrote:

Zelzatter Zero wrote:

community/forums/topics/1120496

Stop abraking thread, today.
Thread taught me some new things.
Same and also futher fortified my belief that old forum is very mobile friendly
q9za

levesterz wrote:

q9za wrote:

Zelzatter Zero wrote:

community/forums/topics/1120496

Stop abraking thread, today.
Thread taught me some new things.
Same and also futher fortified my belief that old forum is very mobile friendly
I heard a lot about old forum, is very cool.
Zelzatter Zero
community/forums/topics/501161

so guys, what will happen when Cookiezi died?
z0z
he becomes a zombie and gets shot down by abraker
Zelzatter Zero

z0z wrote:

he becomes a zombie and gets shot down by abraker
that's what I think too
Corne2Plum3
I locked a thread, wtf
community/forums/topics/966628
Hydreigon
2 in one day....again
q9za
Abraker: I am speed.
JustABeginner

Corne2Plum3 wrote:

I locked a thread, wtf
community/forums/topics/966628
Should be in Flanster's list of locked threads.

Source: Click here. Warning, what you about to do is prohibited. View mode only.
q9za
three years ago
Hydreigon
community/forums/topics/1124270


aw, i didnt have time to join the giveaway :(
JustABeginner

abraker wrote:

locks go woosh
Source: Click here.
Lapizote
Nuuskamuikkunen
Hydreigon
its still funny how GMT's can still post in locked threads
JustABeginner
It's funny abraker liked my meme.
q9za

JustABeginner wrote:

It's funny abraker liked my meme.
Lapizote
community/forums/topics/1131119

that's one delicious looking lock.
q9za

axl2468 wrote:

community/forums/topics/1131119

that's one delicious looking lock.
you are speed
Lapizote

q9za wrote:

axl2468 wrote:

community/forums/topics/1131119

that's one delicious looking lock.
you are speed
somehow i've built up the habit of posting here immediately after abraker locks a post.
q9za

axl2468 wrote:

q9za wrote:

axl2468 wrote:

community/forums/topics/1131119

that's one delicious looking lock.
you are speed
somehow i've built up the habit of posting here immediately after abraker locks a post.
Not quite sure if that's a good thing, but damn ok.
Nuuskamuikkunen

axl2468 wrote:

q9za wrote:

axl2468 wrote:

community/forums/topics/1131119

that's one delicious looking lock.
you are speed
somehow i've built up the habit of posting here immediately after abraker locks a post.
kachow
q9za

eblf2013 wrote:

axl2468 wrote:

q9za wrote:

axl2468 wrote:

community/forums/topics/1131119

that's one delicious looking lock.
you are speed
somehow i've built up the habit of posting here immediately after abraker locks a post.
kachow
McQueen
Lapizote

q9za wrote:

eblf2013 wrote:

axl2468 wrote:

q9za wrote:

axl2468 wrote:

community/forums/topics/1131119

that's one delicious looking lock.
you are speed
somehow i've built up the habit of posting here immediately after abraker locks a post.
kachow
McQueen
q9za

axl2468 wrote:

q9za wrote:

eblf2013 wrote:

axl2468 wrote:

q9za wrote:

axl2468 wrote:

community/forums/topics/1131119

that's one delicious looking lock.
you are speed
somehow i've built up the habit of posting here immediately after abraker locks a post.
kachow
McQueen
Lapizote
breaking news: griller necroposts a thread. community/forums/topics/1106507?n=48
q9za

laptop wrote:

breaking news: griller necroposts a thread. community/forums/topics/1106507?n=48
Man, he just wants to grill, just let him grill goddammit.
Zelzatter Zero
never forget that 1-sec ninja'd
q9za

Zelzatter Zero wrote:

never forget that 1-sec ninja'd
get NINJA'D HAHAHAHHAHHA
Zelzatter Zero

q9za wrote:

Zelzatter Zero wrote:

never forget that 1-sec ninja'd
get NINJA'D HAHAHAHHAHHA
I'm the one who ninja'd, but yeah xD
q9za

Zelzatter Zero wrote:

q9za wrote:

Zelzatter Zero wrote:

never forget that 1-sec ninja'd
get NINJA'D HAHAHAHHAHHA
I'm the one who ninja'd, but yeah xD
ah shit, who you ninja'd?
JustABeginner

abraker wrote:

Ya know I find it ironic how people are now asking for locks. Complete contrast from fag era.
Source: Click here.
Zelzatter Zero

q9za wrote:

Zelzatter Zero wrote:

q9za wrote:

Zelzatter Zero wrote:

never forget that 1-sec ninja'd
get NINJA'D HAHAHAHHAHHA
I'm the one who ninja'd, but yeah xD
ah shit, who you ninja'd?
community/forums/topics/1106507?n=27
q9za
HAHAHA, GET NINJA'D HYDREIGON
Nuuskamuikkunen
Hickity hock, another one gets the lock community/forums/topics/1130372
show more
Please sign in to reply.

New reply